Modem ou routeur ?

Vous avez pris un abonnement ADSL, vous avez configuré votre connection en suivant un guide ou en installant un CDRom et en branchant l'ADSL box de votre fournisseur.

Est-il nécessaire d'installer un Firewall ? Comment puis-je configurer mon PC pour que d'autres personnes puissent prendre le contrôle de ma machine ? Mon application peer-to-peer fonctionne-t-elle correctement ? Comment puis-je faire de ma machine un serveur FTP ?

Toute ces questions sont en fait étroitement liées à la question suivante : mon "ADSL box" se comporte-t-elle comme un modem ou comme un routeur ?

Différence entre un modem et un routeur

Les paquets de données qui circulent sur Internet sont toujours étiquetées avec l'adresse de l'émetteur et celui du destinataire. Il s'agit en fait "d'adresses IP publiques", constituées de 4 chiffres de 0 à 255, séparés par un point.

Par exemple, les paquets de données qui circulent pour lire cette page web sont étiquetés avec l'adresse IP publique 107.20.7.65 (de votre côté) et l'adresse IP publique 212.85.153.5 du côté du serveur web canarlake.org qui délivre ces pages.
 
L'adresse ip  107.20.7.65 de votre côté correspond-elle à votre PC ou à votre  "ADSL box"  ? C'est là ce qui différencie le modem du routeur :

Comment savoir ?

Vous connaissez votre adresse ip publique : 107.20.7.65. Il suffit de taper une commande qui liste la ou les adresses IP de votre PC, et de comparer.
Sous Windows 2000 XP etc..:  démarrer => exécuter => taper "cmd /k ipconfig" puis valider.
Sous Windows 95 98 et Me : démarrer => exécuter => taper "winipcfg"
Sous Linux, mac OS : lancer une console, passez en root, puis tapez "ifconfig"

En général, ces commandes renvoient pas mal d'infos, mails la seule question à se poser est : l'adresse IP 107.20.7.65 fait-elle partie des adresses IP qui figurent dans ces infos ?

Notez qu'une même ADSL box peut permettre le choix de la configuration en modem ou en routeur ( c'est le cas de la Freebox par exemple)

Partage de connection

Le routeur est en principe conçu pour permettre de partager une connection internet simultanée de plusieurs PC, aussi est-il souvent équipé de plusieurs interfaces.
Le modem ne peut pas fournir directement plusieurs connections internet simultanée, on peut toutefois le faire de manière indirecte en partageant la connection internet sur le PC, qui devient alors lui-même un routeur.

Numéros de ports : qu'est-ce que c'est ?

Les différentes activités que vous avez sur internet sont des communication entre un programme de votre PC et un programme sur une machine distante. Par exemple, la consultation de ces pages correspond à un échange de données entre le navigateur web de votre PC, et le serveur web de la machine canarlake.org.

Pour que les paquets de données soient envoyés au bon programme, les paquets de données doivent être étiquetés non seulement par deux adresses IP publique, mais également par deux "numéro de port" qui correspond au programme concernés de part et d'autre.

A titre d'illustration, les paquets de données qui vous permettent de récupérer cette page comportent donc ces 4 information.

 de votre côté côté canarlake.og
adresse ip publique 107.20.7.65 212.85.153.5
n° de port 52290 80
programme associé la fenêtre de votre navigateur web. le programme ("apache") fournissant des pages web.

Client et serveur

Par ailleurs, il y a quelques dissymétries qui vont nous permettre de distinguer le côté "serveur" (le côté "canarlake.org") et le côté "client" (votre côté).
- Le programme côté serveur tourne en permanence (en attente de connections), alors que le programme côté client ne tourne que sur demande
- C'est le client qui prend l'initiative de la connection
- Le numéro de port côté serveur est toujours le même, alors que le port côté client change d'une communication à l'autre (vérifiez en ouvrant cette page dans une deuxième fenêtre de votre navigateur !...).

Client
serveur
n° de port choisi aléatoirement par le PC client
le numéro est normalisé  :
- 80 pour un serveur Web
- 53 pour un serveur DNS
- 110 pour un serveur de messagerie POP3
- etc... (voir liste complète)
programme le programme prend l'initiative de la connection, et ne tourne que le temps nécessaire à l'utilisateur.
programme tournant en permanence pour rester à l'écoute des demandes de connections.

Pour la pluspart des activités que vous avez sur internet, votre PC a le rôle de client.

Faire de mon PC un serveur

Et si vous souhaitez que votre PC devienne serveur, par exemple serveur Web ?

Il vous faudra pour cela installer un logiciel serveur (par exemple le logiciel serveur web Apache).
Ce programme devra tourner en permanence sur votre machine, il sera à l'écoute de demandes de connection sur le port 80. Vous indiquerez à vos amis qui veulent voir le site web de votre machine votre adresse IP publique, qu'elles auront à taper dans la barre d'adresse de leur navigateur.

Si vous avez un modem, aucun problème : les PC de vos amis commenceront une communication avec votre PC sur le port 80 et avec votre adresse IP publique, qui est directement sur votre PC. Vos amis verront vos pages web.

Serveur avec un routeur : redirection de port

Par contre, si vous avez un routeur, c'est là que cela se gâte : en tapant votre adresse IP publique, vos amis vont tenter d'établir une communication non pas avec votre pc, mais avec votre "ADSL box". Celle-ci refusera la connection car elle ne fait pas office de serveur web (et ne sait pas que votre PC fait serveur web), et vos amis auront un message d'erreur sur leur navigateur.
Il va donc falloir donner l'information suivante à votre routeur : pour toute tentative de connection sur le port 80, renvoyer la connection sur le PC plutôt que de refuser la connection. Cela s'appelle la redirection de port.

La procédure est la suivante :
Si vous utilisez un logiciel peer-to-peer comme Emule derrière un routeur, il pourra remplir le rôle de client, mais pas celui de serveur : vous serez classé en "lowid" et cela diminuera sensiblement la vitesse de téléchargement. La solution ? rediriger les ports emule vers votre PC.

Vous souhaitez installer un serveur tightVNC chez votre belle-mère pour pouvoir la dépanner à distance, mais elle est équipée d'un routeur ? Redirigez les ports VNC (5800 et 5900) vers son PC.

Sécurité de mon PC

Le chapitre précédent nous a montré que le routeur et le modem se comportent radicalement différemment vis-à-vis des connections initiées depuis l'extérieur :
Parmi les demandes de connection extérieures, certaines peuvent être des attaques de virus. On voit alors que le modem expose complètement mon PC à ce type d'attaque, contrairement au routeur. On peut en déduire la règle suivante :