GNS3 : port mirroring avec un routeur
Sommaire
I. Présentation
GNS3 est un outil formidable et très efficace pour mettre en place des maquettes systèmes et réseaux dans le cadre de test ou de travaux pratiques. Cependant, il manque une fonctionnalité qui pourrait lui être très utile : les switchs administrables.
Dans le cadre d'une maquette que j'ai voulu mettre en place, j'avais besoin de configurer un port mirroring sur un switch Cisco. Le fait de ne pas pouvoir mettre en place un Switch administrable pour effectuer cela est alors devenu problématique. Il existe néanmoins une astuce pour mettre en place une architecture intégrant du port mirroring avec GNS3, c'est ce que nous allons voir aujourd'hui.
Pour effectuer cela, nous allons ajouter un module de ports FastEthernet sur un routeur afin de lui "greffer" les fonctionnalités de switching recherchés. Voici à quoi ressemblera le schéma final :
Nous avons donc tout en haut une sortie internet représentée par le nuage "C3" qui dans mon contexte me servait à accéder à mon réseau extérieur (mon vrai LAN). Je dispose ensuite de deux machines hôtes que sont "w", une machine Windows et "Kali", une machine sous KaliLinux disposant de Wireshark. Enfin, je dispose d'un routeur "R3" qui possède le rôle de passerelle à Internet pour mon LAN et également de Switch pour la liaison entre les postes et le port mirroring.
Concernant les interfaces :
- R3 - C3 : Interface FastEthernet 0/0 de R3
- R3 - w : Interface FastEthernet 1/2 de R3
- R3 - Kali : Interface FastEthernet 1/3 de R3
Concernant l'adresse IP :
- R3 (WAN) : 192.168.1.101/24
- R3 (VLAN 2 - LAN) : 192.168.2.250/24
- w : 192.168.2.70/24
- Kali : 192.168.2.60/24
Voila, maintenant que les bases sont posées, il est temps de tout expliquer. Je part du principe que votre réseau est relié (câblage fait).
Note : Afin de suivre ce tutoriel correctement, soyez attentifs aux ports dans mon schéma et mes commandes ("f0/0", "f1/2", etc) afin de les remplacer par ceux de votre contexte, pas de copier/coller trop hâtifs !
II. Module Switch du routeur
Avant de commencer une quelconque configuration, il faut commencer par ajouter le module "Switch" à notre routeur. En effet, par défaut un routeur ne possède que 2 à 4 ports, ce qui ne nous permet pas forcément de le faire passer pour un switch dans le cadre d'un port mirroring. Nous allons donc faire un clic droit sur notre routeur pour aller dans le menu "Configuration" :
Ensuite, nous allons dans "R3" qui est le nom de mon routeur dans mon schéma, puis dans "Slots". Dans "slot1", nous irons sélectionner "NM-16ESW" pour ensuite cliquer sur "Appliquer". Ce que nous venons de faire ici, c'est tout simplement insérer un module de ports dans notre routeur, voici à quoi ressemble ce module si nous avions effectué cette opération dans un cadre réel :
Maintenant que notre routeur dispose d'assez de ports et du module de switch, nous pourrons utiliser une bonne partie des fonctionnalités de switching. Il nous faut maintenant démarrer notre routeur pour passer à la configuration de tout cela !
III. Configuration du routeur
Nous passons maintenant à la configuration de notre routeur. Dans ma maquette, ce routeur effectue donc une mission de passerelle entre mon LAN (192.168.2.0/24) et mon WAN (192.168.1.0/24), il devra également effectuer un NAT en sortie du LAN et enfin, mirrorer (répliquer) tout le trafic entrant ET sortant vers et depuis "w" (ma machine Windows) vers ma machine Kali, ce dernier point étant une fonctionnalité de Switch plus que de routeur.
A. Interface WAN
On commence par le moins important, la configuration du WAN sur l'interface fa0/0, je me contente de configurer une adresse IP puis de paramétrer ma route par défaut :
R3# conf t R3(config)# interface FastEthernet 0/0 R3(config-if)# ip address 192.168.1.101 255.255.255.0 R3(config-if)# no sh R3(config-if)# exit R3(config)# ip route 0.0.0.0 0.0.0.0 192.168.1.254
Ici, 192.168.1.254 est ma passerelle WAN (ma livebox).
B. VLAN et interfaces LAN
Nous allons maintenant passer à la partie LAN, celle-ci est donc gérée par le module de Switch qui collecte donc ma machine Windows et ma machine KaliLinux. Ici, on doit donc configurer un VLAN et lui affecter une IP, cette IP sera la passerelle du réseau LAN.
Une petite note, dans GNS3, la création d'une VLAN se fait "à l'ancienne", et non via la méthode que vous avez comme moi apprise en cours. C'est une spécificité du module Switch de GNS3 avec laquelle il faut travailler.
R3# vlan database R3(vlan)# vlan 5 R2(vlan)# exit
Résultat attendu :
Notre VLAN est maintenant créée, nous allons pouvoir lui affecter une IP ainsi qu'y mettre les ports voulus. Dans mon cas Fa1/2 et Fa1/3
Note : Étant donné que les ports dédiés au switching se situent sur un module additionnel et ne sont pas intégrés directement au routeur, il faut, pour les configurer préciser "Fa1/XX" et non plus "Fa0/XX". Le "1" après "Fa" indiquant le numéro de module et les "/XX" le numéro de port dans le module précisé.
On poursuit donc en configurant nos interfaces et notre VLAN :
R3# conf t R3(config)# interface vlan 5 R3(config-int)# ip address 192.168.2.250 255.255.255.0 R3(config-int)# interface FastEthernet 1/2 R3(config-int)# interface switchport mode access R3(config-int)# interface switchport access vlan 5 R3(config-int)# interface FastEthernet 1/3 R3(config-int)# interface switchport mode access R3(config-int)# interface switchport access vlan 5
Voila qui est fait, nos interfaces LAN sont maintenant dans notre VLAN 5 et peuvent à présent pinguer 192.168.2.250 et également se pinguer entre elles. Cela revient à avoir le schéma suivant :
Sauf que dans notre cas, le module Switch est intégré au routeur et nous pouvons le manager, ce qui n'aurait pas été le cas dans le schéma ci-dessus car les switchs dans GNS3 ne sont pas manageables.
IV. Configuration du port mirroring
Passons à la partie la plus intéressante : le port mirroring. Il existe déjà un tutoriel sur cette fonctionnalité sur IT-Connect.fr mais l'intégrer dans un schéma GNS3 est une autre paire de manche étant donné la petite gymnastique à faire due au faite que les switchs ne soient pas manageables. Bref, on enchaîne !
Ici, je veux donc mirrorer ce qui entre et sort du port FastEthernet Fa1/2 vers le port FastEthernet Fa1/3 :
R3(config)# monitor session 1 source interface fa 1/2 both R3(config)# monitor session 1 destination interface fa1/3
Voila qui est fait, à présent, nous pourrons effectuer par exemple un ping vers l'extérieur et ouvrir un outil d'analyse du trafic sur notre machine KaliLinux pour voir le trafic passer !
Pour plus de précision sur le port mirroring ou pour effectuer cette configuration dans un environnement réel (hors GNS3), je vous oriente vers ce tutoriel sur IT-Connect : Port Mirroring Cisco
Pour pinguer vers l'extérieur, encore faudrait il avoir le routage pour ! Dans le cadre de ma maquette, j'avais à effectuer un NAT de mon LAN sur mon routeur, je vous le met en bonus à la suite. Pour arrêter tout port mirroring, on ajoute "no" devant nos commandes, ce qui est classique sous Cisco :
R3(config)# no monitor session 1 source interface fa 1/2 both R3(config)# no monitor session 1 destination interface fa1/3
V. Configuration du NAT
Pour effectuer un NAT de mon LAN sur mon routeur qui possède notre petite astuce du module Switch, voici la marche à suivre (rien de très différent par rapport à un contexte normal) :
R3(config)# interface vlan 5 R3(config-int)# ip nat inside R3(config-int)# interface fa0/0 R3(cofing-int)# ip nat outside R3(config-int)# exit R3(config)# access-list 1 permit 192.168.2.0 0.0.0.255 R3(config)# ip nat outside source list 1 interface FastEthernet0/0 overload
La seule spécificité ici est que notre "ip nat inside" est mise directement sur notre vlan 5 qui contient les ports de mon LAN. A nouveau, ce sujet a déjà été traité sur IT-Connect et je vous oriente vers ce tutoriel afin d'effectuer une configuration NAT sous Cisco sur une infrastructure plus standard : Configuration d’un NAT dynamique sur un routeur Cisco
Soyez attentifs ici, pour la commande "access-list..." c'est le wildcard-mask qui est utilisé et le pool IP de mon LAN. pour la commande suivante, on précise l'interface WAN (FastEthernet0/0 dans mon cas).
J'ai eu beaucoup de mal à trouver des informations sur ce type d'infrastructure pour le port mirroring sous GNS3, j'espère donc que ce petit tutoriel vous aura été utile !
Hello,
Une alternative avec la version 1.3.X de GNS3 il est possible de faire tourner IOU ce qui permet d’avoir des images de switch Cisco.
Par contre c’est pas dans le dépots ubuntu / debian. Il faut utiliser le PPA fournis sur le site pour installer GNS3 1.3 à la place de la 0.8.
La machine kali ne pourra pas envoyer ni recevoir du trafic a cause du mirroring.
sur un vrai switch cisco c’est possible en ajoutant le mot Ingress mais sous gns3 c’est impossible ?!