Previous Contents Next

12   Corrigé du DS du 15 novembre 2004

Examen d'une durée de deux heures avec tous les documents autorisés (y compris ordinateurs).

12.0.35   Visite guidée de l'Artois

Le fil rouge de cet examen consiste en l'analyse de la configuration réseau de la machine artois de Polytech'Lille.

12.0.36   Les interfaces réseau

On donne, tout d'abord, le contenu de quelques fichiers relatifs à la configuration réseau de la machine Artois :
Fichier des VLANs de Polytech'Lille :
 
Nom:Numéro:Réseau IP
...
SERVERS:2:193.48.57.32/255.255.255.224
STUDENTS:4:172.26.16.0/255.255.240.0
...
 
Fichier /etc/network/interfaces :
 
auto lo vlan2 vlan4
iface lo inet loopback
iface vlan2 inet dhcp
  vlan-raw-device eth0
iface vlan4 inet dhcp
  vlan-raw-device eth0
 
Fichier /etc/pump.conf :
 
device vlan4 {
  nodns
  nogateway
}
 
Veuillez, ensuite, répondre aux questions en rapport avec ces fichiers :

  1. Le fichier interfaces peut être utilisé pour créer automatiquement des sous-interfaces dans des VLANs donnés. Il suffit de définir des interfaces de nom vlanxx avec xx donnant le numéro de VLAN et de spécifier l'interface de base avec le mot clef vlan-raw-device. Donnez les commandes nécessaires pour effectuer "à la main" la création des interfaces définies dans le fichier interfaces donné ci-dessus.
    Pour définir les sous-interfaces avec des noms de type eth0.xx, il suffit d'utiliser les commandes :
    vconfig add eth0 2
    vconfig add eth0 4
    
    Si l'on souhaite avoir des noms de la forme vlanxx, il faut taper la commande ci-dessous avant les vconfig add :
    vconfig set_name_type VLAN_PLUS_VID_NO_PAD
    
  2. La machine Artois est connectée sur un commutateur Cisco. Au vu des fichiers ci-dessus vous êtes en mesure de donner la configuration de l'interface GigabitEthernet0/4 sur laquelle se trouve Artois.
    L'interface doit être configurée en mode trunk :
    Switch#configure terminal
    Enter configuration commands, one per line.  End with CNTL/Z.
    Switch(config)#interface gigabitEthernet0/4
    Switch(config-if)#switchport mode trunk      
    Switch(config-if)#switchport trunk encapsulation dot1q
    Switch(config-if)#exit
    Switch(config)#
    
  3. De combien d'interfaces réseau physiques dispose Artois ?
    D'après les fichiers fournis, Artois ne semble disposer que d'une interface physique eth0, l'interface lo ne pouvant pas vraiment compter comme interface physique.
  4. Quelles sont les interfaces d'Artois qui obtiendront une adresse IP au démarrage de la machine ? donnez ces adresses IP exactement ou une fourchette dans laquelle elles doivent se trouver.
    Le fichier interfaces indique que les interfaces lo, vlan2 et vlan4 vont recevoir une adresse IP (mot-clef auto). L'adresse IP de lo sera 127.0.0.1. Les adresses de vlan2 et vlan4 ne peuvent pas être données exactement : elles sont obtenues par DHCP. L'adresse de vlan2 sera dans le réseau 193.48.57.32/27 et l'adresse de vlan4 dans le réseau 172.26.16.0/20.
  5. Donnez le masque réseau, le numéro de réseau et l'adresse de diffusion pour toutes les interfaces configurées automatiquement.
    Interface Masque Réseau Diffusion
    lo 255.0.0.0 127.0.0.0 127.255.255.255
    vlan2 255.255.255.224 193.48.57.32 193.48.57.63
    vlan4 255.255.240.0 172.26.16.0 172.26.31.255
  6. Sachant que pump est un client DHCP intuitez la signification du contenu du fichier pump.conf ci-dessus et donnez sa raison d'être.
    Le fichier indique que les informations DHCP reçues pour l'interface vlan4 et concernant les serveurs DNS et le routeur par défaut ne doivent pas être prises en compte. Sinon il y aurait, en particulier, deux routes par défaut, dont une ne menant que sur un réseau privé. Suivant les fois la route par défaut pourrait être celle menant vers Internet ou celle menant vers le réseau privé (et dans ce cas Internet ne serait pas joignable d'Artois ce qui est gênant pour un proxy-web et un serveur web).

12.0.37   La table de routage

On donne, tout d'abord, le contenu du fichier /etc/network/options :
ip_forward=yes
spoofprotect=no
syncookies=no
Répondez, ensuite, à ces quelques questions au sujet du routage :

  1. Pouvez-vous dire si le routage des paquets IP entre les interfaces réseau de la machine Artois est activé ?
    Oui le routage est activé car l'option ip_forward=yes du fichier /etc/network/options positionne le drapeau /proc/sys/net/ipv4/ip_forward du noyau à 1 (comportement spécifique à la distribution Debian).
  2. Donnez la table de routage de la machine Artois au vu du fichier interfaces de la section précédente.
    La configuration des interfaces vlan2 et vlan4 par DHCP implique les deux entrées ci-dessous dans la table de routage :
    Réseau Masque Passerelle
    193.48.57.32 255.255.255.224 0.0.0.0
    172.26.16.0 255.255.240.0 0.0.0.0

    Ensuite nous savons qu'une seule passerelle par défaut sera ajoutée; celle concernant l'interface vlan2. L'adresse de la passerelle est la première adresse IP libre dans le réseau associé au VLAN SERVERS (principe adopté à Polytech'Lille) :
    Réseau Masque Passerelle
    0.0.0.0 0.0.0.0 193.48.57.33
  3. Donnez la signification de la seconde ligne du fichier options ci-dessus. Expliquez ce qui se passe si l'on passe l'option à yes et qu'un utilisateur sur le VLAN STUDENTS tente d'utiliser le proxy proxy.polytech-lille.fr dans son navigateur.
    La seconde option spoofprotect=no désactive la protection contre le routage abusif. Par routage abusif on entend routage de paquet provenant d'une interface inattendue. La protection est désactivée sur Artois car dans l'exemple de l'utilisation du proxy officiel de l'école à partir des machines de TP, la machine Artois (qui est le proxy web) va voir arriver par l'interface vlan2 un paquet d'une machine du VLAN STUDENTS. Ceci sera indument pris pour une tentative d'usurpation d'adresse IP et le paquet sera détruit (j'avoue la question était difficile, j'ai personnellement mis 6 mois pour trouver le problème).
  4. Expliquez quel type de déni de service la troisième option du fichier options pourrait éviter. Décrivez le fonctionnement du déni de service, décrivez rapidement le principe de la parade.
    Cette option (si elle est positionnée à yes) permet d'éviter les inondations de paquets TCP portant la marque SYN. Le but de l'inondation est d'envoyer un maximum de tels paquets (qui sont des paquets de demande d'établissement de connexions TCP) pour saturer la file des connexions en devenir. La parade consiste à ne pas avoir de telle file d'attente et à stocker toutes les informations sur la connexion en devenir dans le numéro de séquence initiale TCP. Cela dit la parade n'est pas parfaite car cette technique laisse le champ libre à des détournements de connexions TCP.

12.0.38   Les fonctions de mandataire

On donne, tout d'abord, le résultat de quelques commandes relatives à la configuration des iptables sur Artois :
Commande iptables -L -t filter :
 
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
 
Commande iptables -L -t nat :
 
Chain PREROUTING (policy ACCEPT)
target prot opt source    destination
DNAT   tcp  --  anywhere  artois.escaut.net tcp dpt:2121 to:172.26.16.4:21
DNAT   tcp  --  anywhere  artois.escaut.net tcp dpt:2222 to:172.26.16.4:22
DNAT   tcp  --  anywhere  artois.escaut.net tcp dpt:2323 to:172.26.16.4:23
DNAT   tcp  --  anywhere  artois.escaut.net tcp dpts:50100:50110 to:172.26.16.4

Chain POSTROUTING (policy ACCEPT)
target     prot opt source                     destination
MASQUERADE all  --  hainaut.studserv.deule.net anywhere
MASQUERADE tcp  --  net-students.deule.net/20  anywhere tcp dpt:ftp
MASQUERADE tcp  --  net-students.deule.net/20  anywhere tcp dpt:pop3
MASQUERADE tcp  --  net-students.deule.net/20  anywhere tcp dpt:nntp

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
 
Répondez, ensuite, aux questions suivantes :
  1. La machine Artois fait-elle du filtrage de paquets ?
    Non : la table de filtrage est vide et les politiques par défaut sont de tout laisser passer. Artois ne fait pas de filtrage de paquets, par contre il agit en tant que mandataire (proxy) puisque la table nat (translation d'adresse) contient un certain nombre de règles.
  2. Quel service la machine Artois offre-t-elle à la machine Hainaut ?
    La première règle dans la chaîne POSTROUTING de la table nat de la machine Artois implante un mécanisme de mascarade total (tous les protocoles IP) au bénéfice de la machine Hainaut. Donc si cette machine a une route par défaut passant par Artois, elle pourra contacter les machines d'Internet bien qu'elle ne possède pas d'adresse IP routée. Par contre Hainaut ne peut pas être contactée en provenance d'Internet.
  3. Est-il possible, pour les machines d'enseignement, d'accéder à certains services Internet malgré la barrière due à leurs adresses IP non routées ?
    Oui les règles 2 à 4 dans la chaîne POSTROUTING de la table nat de la machine Artois implante un mécanisme de mascarade pour les ports TCP 21,110 et 119. En clair cela signifie que les machines de TP peuvent accéder aux serveurs FTP, POP et aux serveurs de News d'Internet malgré le fait qu'elles ne possèdent pas d'adresses IP routées.
  4. Expliquez le fonctionnement de la règle concernant le port ssh (port 22) dans la table nat. Décrivez le service rendu pour un non-informaticien.
    La règle concernant le port ssh est une redirection de port (avec état). Les paquets arrivant sur le port 2222 de la machine Artois sont redirigés vers le port 22 de la machine Weppes. Il faut bien comprendre que le mécanisme inverse est aussi mis en place : lorsqu'un paquet revient du port 22 de Weppes sur Artois, il est vérifié qu'il s'agit de la réponse à un paquet redirigé et si c'est le cas, le port source et l'adresse IP source de ce paquet sont changés en le port 2222 et en l'adresse IP d'Artois. Ainsi la réponse peut être comprise par la machine d'Internet ayant initié la contact. Lorsqu'Artois reçoit un paquet provenant du port 22 de Weppes, il peut savoir s'il s'agit de la réponse à un paquet redirigé en regardant le port destination qu'il a lui même choisi comme port source lors de la redirection. Pour un non-informaticien il suffit de dire qu'il s'agit d'un service d'accès à la machine Weppes de l'extérieur du campus de Lille 1.
  5. Artois est configuré pour rediriger des connexions FTP sur Weppes. Indiquez la règle implantant cette redirection et la façon dont un utilisateur extérieur au campus de Lille 1 doit s'y prendre pour faire des transferts FTP de ou vers Weppes.
    Il s'agit de la première règle de la table nat dans la chaîne PREROUTING. De l'extérieur du campus un utilisateur doit utiliser une commande du type :
    ftp proxy.polytech-lille.fr 2121
    
    Il faut savoir que proxy.polytech-lille.fr est un alias DNS vers artois.escaut.net).
  6. Cette simple règle ne suffit pas vu la complexité du protocole FTP (une connexion TCP pour les commandes et une pour chaque transfert de données). Un module dans le noyau d'Artois ip_nat_ftp est chargé d'analyser le contenu des paquets FTP redirigés. Dites ce que ce module doit faire pour autoriser les transferts en mode actif. L'extrait de session ci-après peut vous donner quelques indices :
    artois# conntrack-viewer.pl -m
    Active MASQUERADED Connections according to /proc/net/ip_conntrack
    Proto Source Address Remote Address      Service  State    
    tcp   172.26.16.4:20 192.94.73.35:52187  ftp-data TIME_WAIT
          weppes.studserv.deule.net > sdf-eu.org
    tcp   172.26.16.4:20 192.94.73.35:52181  ftp-data ESTABLISHED
          weppes.studserv.deule.net > sdf-eu.org
    
    Lorsque le module en question voit passer dans un paquet FTP à rediriger sur Weppes une commande FTP de type PORT, il sait que le client FTP extérieur s'apprête à demander un transfert de données pour lequel Weppes doit se connecter sur la socket TCP dont l'adresse est donnée en argument de la commande PORT. Le module d'Artois s'arrange donc pour que la connexion de Weppes vers le client puisse s'effectuer (mise en place d'une mascarade pour cette connexion précise).
  7. Le module de la question précédente n'est pas utilisé pour autoriser les transfert FTP en mode passif. Dites quelle règle permet de les autoriser et à quoi sert cet extrait du fichier de configuration du serveur FTP de Weppes :
    # This host is behind a firewall
    passive address 172.26.16.4 193.48.57.32/27
    passive address 172.26.16.4 193.48.64.0/24
    passive address 172.26.16.4 172.26.32.0/20
    passive address 193.48.57.37 0.0.0.0/0
    passive ports 193.48.57.32/27 1024 50000
    passive ports 193.48.64.0/24 1024 50000
    passive ports 172.26.32.0/20 1024 50000
    passive ports 0.0.0.0/0 50100 50110
    
    Le serveur Artois se trouve comme toute machine du campus de Lille 1 derrière un pare-feu. Il faut demander explicitement à ouvrir des ports pour autoriser un service. Dans le cas de transferts FTP passifs c'est assez difficile car le transfert se fait à partir d'un port TCP quelconque du serveur FTP. Le fichier de configuration du serveur FTP Weppes fixe les numéros de ports pour les transferts passifs (du moins ceux à destinations de l'Internet) entre 50100 et 50110 (ce qui a le désagréable effet de bord de limiter le nombre de transferts passifs simultanés). Il est ensuite assez simple de demander l'ouverture de ces ports pour Artois puis de les rediriger par DNAT sur Weppes (dernière règle de PREROUTING de la table nat).

Previous Contents Next