Aller au contenu principal

Exercices de la semaine 11

Configuration du DNS

Vous n’avez probablement jamais eu à configurer manuellement l’adresse de votre serveur DNS local. Comment cette adresse est-elle obtenue par votre ordinateur?

Réponse

Sur un réseau IPv4, l'adresse du serveur DNS local est fournie par le serveur DHCP. Sur un réseau IPv6, un routeur envoie des messages ICMPv6 de type Router Advertisement pour permettre l'autoconfiguration des postes, mais l'information de configuration du DNS est absente.

Serveur DNS racine

Comment votre serveur DNS local résout-il les adresses IP des serveurs DNS racines?

Réponse

Une liste de serveurs racines est préprogrammée sur le serveur, typiquement sous format d'un fichier texte (https://www.iana.org/domains/root/files). En effet, sans cette liste, il serait bien difficile de démarrer une résolution de nom.

Découverte d'un serveur DHCP

Comment un client découvre-t-il un (ou plusieurs) serveur (s) DHCP sur un réseau?

Réponse

Pour découvrir un serveur DHCP, un client envoie un message DHCPDISCOVER ayant pour destination l'adresse broadcast sur le réseau. Ce message est transporté sur le protocole UDP vers le port de service DHCP (67). Tous les appareils IPv4 reçoivent le message (broadcast), mais seuls ceux qui ont un serveur DHCP actif répondent au message de découverte.

Découverte d'un serveur DHCP (suite)

Lorsque le client envoie un message de type DHCPDISCOVER , quelle adresse source utilise-t-il pour envoyer le datagramme? Quelle est l'adresse IP de destination utilisée par le serveur DHCP lorsque le message offre une nouvelle adresse à un hôte?

Réponse

Le client utilise l'adresse 0.0.0.0 , soit l'adresse placeholder (Registre IANA des adresses IPv4 spéciales) puisque le poste n'a toujours pas d'adresse. Cette adresse permet aux hôtes d'envoyer un datagramme IPv4 même s'ils n'ont pas d'adresse configurée. Cependant, les récipiendaires des datagrammes n'ont pas d'adresse de retour pour répondre au message. Ceux-ci doivent habituellement se résoudre à utiliser l'adresse broadcast pour répondre.

DHCP et masque sous réseau

En plus d’une adresse IPv4, DHCP fourni aussi à votre poste le masque sous-réseau associé à l’adresse. Pourquoi est-ce nécessaire? Dans quelle(s) circonstance(s) votre PC utilise-t-il le masque sous-réseau?

Réponse

Sans un masque sous-réseau, un poste n'est pas en mesure de déterminer si une adresse de destination se trouve dans le sous-réseau local ou non. Il est donc assez difficile pour un hôte d'acheminer des paquets au bon endroit sans masque sous-réseau.

Validation de l’adresse reçue par DHCP

Il est typiquement recommandé qu’un poste recevant une adresse via DHCP valide l’unicité de cette adresse sur le réseau. Comment un poste peut-il valider qu’une adresse fournie par DHCP n’est pas déjà utilisée par un autre poste sur le réseau?

Réponse

Sous IPv4, un poste peut envoyer une requête ARP pour l'adresse reçue. Si aucune réponse n'est reçue, cela permet de confirmer qu'aucun autre poste sur le sous-réseau ne possède la même adresse.

APIPA

Décrivez comment un hôte peut configurer une adresse IPv4 de manière automatique et sans conflit. Est-ce aussi efficace que l’autoconfiguration d’adresse IPv6? Pourquoi?

Réponse

Sous IPv4, il est difficile d'obtenir une solution pour la génération d'adresses automatique. Comme vous l'avez probablement lu dans la section 6.3, la solution pour IPv4 est tout simplement d'essayer des adresses (de manière aléatoire) et d'utiliser ARP pour valider qu'elles ne sont pas utilisées. Si vous trouvez que cette solution est sous optimale, c'est normal. L'autoconfiguration IPv4 est sujette à une bien plus grande quantité de collisions d'adresses que l'autoconfiguration IPv6.

Unicité des adresses IPv6

Comment un hôte peut-il valider l’unicité de son adresse link-local sur un réseau.

Réponse

Les hôtes utilisant IPv6 n’utilisent pas ARP. En effet, ARP est un protocole conçu pour IPv4 seulement. IPv6 utilise plutôt un protocole appelé Neighbor Discovery (ND) (section 6.3.2.1 du livre, RFC4861). ND définit différents types de datagrammes ICMPv6 permettant entre autres de solliciter les postes sur un réseau possédant une certaine adresse. Ces messages ICMPv6 de type Neighbor Solicitation (p.22 du RFC4861) encouragent les postes possédant l'adresse cible (Target) à répondre avec un message de type Neighbor Advertisement.

Autoconfiguration et protection de l’identité

Expliquez pourquoi l’utilisation de l’adresse physique d’un hôte pour l’autoconfiguration IPv6 (EUI-64) d’un hôte soulève des préoccupations en lien avec la protection d’identité.

Réponse

Utiliser l’adresse MAC d’un hôte pour l'autoconfiguration IPv6 le l'interface de ce poste facilement traçable. Puisque l'adresse IPv6 du poste est visible sur Internet, l'adresse EUI-64 devient un identifiant "permanent", même si ce poste se connecte à partir de différents réseaux. Cet identifiant peut donc être utilisé par des services Internet pour construire un profil des utilisateurs.

La Section 2 du RFC4941 détaille les risques liés à l’utilisation de l’adresse MAC pour l’autoconfiguration d’adresses IPv6, et introduit les extensions de confidentialité pour l'autoconfiguration IPv6.

Implémentation d'un firewall

Si vous aviez à implémenter un service de firewall, quel type d'appareil devriez vous l'implémenter?

Réponse

Puisqu'un rôle typique d'un firewall est de filtrer l'information circulant d'un réseau à l'autre, ce service est souvent implémenté comme routeur en périphérie d'un réseau. Puisque ce routeur reçoit tous les datagrammes entrant et sortant du réseau, il est logique d'installer ce service à cet endroit.

Un service de firewall sur un poste de travail est également commun et supporté par la majorité des systèmes d'exploitation. Ce type de firewall offre normalement une meilleure sécurité pour le poste de travail, car il inspecte tout le trafic reçu par le poste, pas seulement celui qui transit par le firewall en périphérie.

Firewall et les couches Internet

À quelle(s) couche(s) Internet le firewall opère-t-il?

Réponse

Toutes les réponses sont bonnes, tout dépend de l'application. En effet, un firewall peut opérer à plusieurs couches de la pile réseau: Liaison, réseau, transport et application. Par contre, la complexité augmente lorsqu'un firewall inspecte la couche applicative, car l'appareil doit comprendre les différents protocoles applicatifs pour y appliquer des règles.

Un firewall opérant à la couche réseau peut par exemple filtrer des datagrammes provenant de sources indésirables. Il ne peut pas, cependant, valider que les contenus d’une requête HTTP ne s’avère pas malicieux. Tout dépend du type de protection désirée.

Attaque volumétrique et firewall

Un firewall vous protégerait-il d'une attaque volumétrique de type déni de service distribué1 (DDoS)? Pourquoi?

Réponse

Il est très difficile pour un firewall de mitiger ce genre d’attaque. En premier lieu, les attaques de ce genre tendent à provenir d'une multitude d'adresses n'ayant aucun lien entre elles (souvent des postes compromis sur Internet). Il est donc très difficile pour le firewall d’identifier un datagramme malicieux. Ensuite, même si le firewall est configuré pour bloquer les différentes sources des datagrammes malicieux, leur grand nombre vient surcharger l'appareil, le rendant pratiquement inutilisable le réseau qu'on tente de protéger.

Une technique populaire moderne pour mitiger ce genre d’attaque est de temporairement rediriger le trafic vers des serveurs offrant une puissance de calcul considérable. Pour la durée de l’attaque, ces serveurs performants filtrent les paquets, et non le routeur de votre entreprise. Cependant, ces services sont typiquement très coûteux et difficiles à déployer. Ils sont donc uniquement utilisés par les plus grands fournisseurs de service sur Internet. Je vous suggère l’article How GitHub Successfully Mitigated a DDoS Attack pour une démonstration pratique de la technique.

Solutions au manque d’adresses IPv4

Nommez deux solutions qui ont été implémentées afin de mitiger le manque d’adresses IPv4 pour la quantité toujours grandissante d’appareils connectés à internet.

Réponse

  1. Le NAT: Le NAT permet des duplicata d’adresses sur Internet sans pour autant causer de conflits en isolant les différents LANs.
  2. IPv6: IPv6 vient drastiquement grandir la taille du bassin d’adresse disponible en utilisant 128 bits pour représenter une adresse (plutôt que 32 pour IPv4).

NAT et port forwarding (Difficile)

Deux domiciles Maison 1 et Maison 2 sont connectés à Internet à l'aide d'un routeur. Le service NAT est activé dans ces routeurs afin de permettre la connectivité Internet à partir du réseau privé du domicile correspondant.

Un habitant de la Maison 1 veut se connecter au serveur Minecraft actif (en écoute sur le port TCP 65565) sur le PC2 de la Maison 2. Puisque le PC2 est dans un domaine de routage privé (non visible d'Internet), le NAT sur routeur R2 doit être configuré pour permettre du port forwarding vers ce serveur (voir section 7.3.4: Servers behind NATs).

Le port forwarding permet de rendre visible un service applicatif dans un réseau privé à partir d'Internet. Une entrée dans la table de traduction NAT de R2 est configurée manuellement pour rediriger à PC2 tout le trafic reçu par R2 (adresse 198.51.100.253) vers le service TCP 65565 (service Minecraft). L'adresse destination de ce trafic sera traduite pour remplacer l'adresse de R2 pour celle de PC2.

À partir du PC1, on établit une connexion TCP vers le serveur Minecraft.

Lorsque le PC1 envoie un datagramme vers le PC2, quelle adresse destination place-t-il dans le datagramme? Et quelle est l'adresse source?

Réponse

L'adresse destination est celle du routeur R2 (198.51.100.253) et l'adresse source est sa propre adresse IP sur le réseau 192.168.64.0/24.

Si on examine le datagramme sur Internet, quelle est l'adresse source? L'adresse destination?

Réponse

Adresse source: 203.0.114.17 Adresse destination: 198.51.100.253

Lorsque le PC2 reçoit le datagramme envoyé par le PC1, quelle est l’adresse source?

Réponse

L'adresse source est celle du routeur R1 (203.0.114.17) et l'adresse destination est l'adresse IP du PC2 dans le réseau 10.0.0.0/24.

Notes de bas de page

  1. https://www.cloudflare.com/fr-fr/learning/ddos/what-is-a-ddos-attack/