Plus fort. Nous reprenons ici le principe du routage entre un réseau local utilisant des adresses IP privées et une connexion Internet, avec une « vraie » IP, une qui peut se promener de réseau en réseau en dehors de notre microcosme.
Pour réaliser la manipulation, nous réalisons quelque chose de très similaire à ce que nous avons vu en page précédente, seules les adresses MAC et IP changent, de même que le nom de la passerelle. Notre routeur cyclope
, qui connecte nos réseaux 192.168.1.0 et 192.168.0.0 va, ici, réaliser un masquage d'adresse pour 192.168.1.0.
Autrement dit :
Ici, cyclope ne va pas se comporter en routeur « normal », il fera du masquage d'adresse de tout ce qui vient du réseau 192.168.1.0 et sort par eth0.
Avec IPtables, nous utilisons la commande suivante :
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
192.168.1.2 envoie un ping sur 192.168.0.15 :
Côté réseau 192.168.1.0 (LAN) | Côté réseau 192.168.0.0 (Pseudo Internet) |
---|---|
# Le ping... | # Le ping... Frame 1 ... Ethernet II, Src: 00:20:af:4a:66:b7, Dst: 00:05:5d:48:2b:84 Destination: 00:05:5d:48:2b:84 (192.168.0.15) Source: 00:20:af:4a:66:b7 (192.168.0.16) # Au niveau Ethernet (niveau 2) # - La source devient le routeur # - la destination est la vraie destination # Jusque là, tout est normal. Type: IP (0x0800) Internet Protocol, Src Addr: 192.168.0.16 Dst Addr: 192.168.0.15 # Au niveau IP (niveau 3) # - La source devient le routeur (192.168.0.16) # - la destination reste la vraie destination # Il y a donc eu remplacement de l'adresse # de la source par celle du routeur (MASQUERADE)... Version: 4 ... Protocol: ICMP (0x01) Header checksum: 0xba39 (correct) Source: 192.168.0.16 Destination: 192.168.0.15 Internet Control Message Protocol Type: 8 (Echo (ping) request) |
# Et la réponse... Frame 2 ... Ethernet II, Src: 00:20:18:2c:0e:21, Dst: 00:80:c8:8e:89:b0 Destination: 00:80:c8:8e:89:b0 (192.168.1.2) Source: 00:20:18:2c:0e:21 (192.168.1.1) # Au niveau Ethernet, le routeur répond # au client, c'est encore normal. Type: IP (0x0800) Internet Protocol, Src Addr: 192.168.0.15, Dst Addr: 192.168.1.2 # Au niveau IP, de ce côté-ci, on a bien # l'impression que le serveur a répondu directement # au client, tout semble normal. # En fait, MASQUERADE a bien fait son travail. Version: 4 ... Protocol: ICMP (0x01) Header checksum: 0x25b4 (correct) Source: 192.168.0.15 Destination: 192.168.1.2 Internet Control Message Protocol Type: 0 (Echo (ping) reply) | # Et la réponse... Frame 2 ... Ethernet II, Src: 00:05:5d:48:2b:84, Dst: 00:20:af:4a:66:b7 Destination: 00:20:af:4a:66:b7 (192.168.0.16) Source: 00:05:5d:48:2b:84 (192.168.0.15) # Au niveau Ethernet, le serveur répond au routeur # Là encore, c'est normal. Type: IP (0x0800) Internet Protocol, Src Addr: 192.168.0.15, Dst Addr: 192.168.0.16 # Mais au niveau IP, le serveur répond aussi # au routeur. C'est logique, à cause de MASQUERADE, # le serveur croit que c'est le routeur qui # a envoyé le ping. Version: 4 ... Protocol: ICMP (0x01) Header checksum: 0x25a7 (correct) Source: 192.168.0.15 Destination: 192.168.0.16 Internet Control Message Protocol Type: 0 (Echo (ping) reply) |
La morale de cette histoire est la suivante :
Ce n'est pas pour rien que l'on appelle cette technique : du masquage d'adresse (MASQUERADE) !
Pour finir de mettre les points sur les i :
Dans un routage par masquage d'adresse :
Dans un routage simple, c'est plus simple :