Outils pour utilisateurs

Outils du site


docs:faq:p2p_et_ports (lu 27380 fois)

Le P2P et les ports

I - Introduction

L’un des problèmes les plus fréquents sur les P2P est relatif aux ports (Voir Port_(logiciel)). Lorsque vous utilisez un logiciel qui a besoin d’internet (dont les P2P), il utilise des canaux chacun identifié par un numéro de port. Le problème, c’est que ces canaux sont parfois bloqués (les ports sont bloqués), et les causes probables de cela sont multiples. Le but de cet article est donc de vous permettre de vérifier s’il y a blocage, d’identifier les causes du blocage, et d’agir de sorte de les libérer.

II - Théorie

Une partie théorique qui parle des ports et des pare-feux. Il s’avère que si vous comprenez cela, vous n’aurez pas de mal à comprendre ce que fait un routeur.

A - Port entrant et sortant

Tout comme l’on peut circuler dans les deux sens sur un canal, un port partage aussi cette propriété. Ainsi, on dit qu’un port est sortant lorsque le trafic qui circule dessus se dirige vers le réseau internet (vous émettez des données sur ce port). A l’inverse, un port entrant indique que le trafic se dirige vers votre ordinateur (vous recevez des données sur ce port).

B - Principe général d'un pare-feu

Le pare-feu (firewall) est le dispositif par excellence qui contrôle ce trafic.

Il n’est en effet pas souhaitable d’avoir un ordinateur relié à internet en laissant les données circuler comme bon leur semblent. Par exemple, certains virus (les vers) utilisent votre connexion internet pour se reproduire. D’autres virus (les troyens, ou trojan) prennent le contrôle de votre ordinateur et communiquent avec un autre ordinateur (qui contrôle ces troyens) sur internet à votre insu. Le pare-feu a pour objectif de bloquer ce trafic néfaste.

En règle général, un pare-feu bloque tout, et n’autorise que quelques exceptions. S’il bloquait absolument tout, vous ne pourriez même plus surfer sur internet !

C - Schémas de déroulement d'une communication

Un programme (un logiciel, une application) est souvent configuré pour utiliser un ou plusieurs ports précis. Nous envisagerons 2 cas, le logiciel pourra…

  • souhaiter établir une connexion sortante
  • souhaiter attendre d’être contacté (établir une connexion entrante).

a) Etablir une connexion sortante

Le logiciel souhaite contacter un ordinateur sur internet. Exemple : votre navigateur internet souhaite joindre un site web. Pour cela, votre navigateur utilise le port sortant numéro 80. Pour recevoir la réponse du site web, un autre port est utilisé, mais cette fois-ci il s’agira d’un port entrant. Techniquement, le numéro de ce port importe peu, le principal c’est de recevoir ce qu’on a demandé, alors le port est choisi dynamiquement (c’est à dire un peu au hasard, par exemple : 3146).1)

b) Etablir une connexion entrante (Etre à l'écoute d'une connexion)

Le logiciel peut ne pas avoir besoin de communiquer tout de suite, mais juste dire qu’il sera joignable et attendra qu’un autre ordinateur cherche à le contacter. Pour cela, il utilisera un port entrant (par exemple : 4561). Aucune communication n’est encore établie sur ce port, on dit qu’il est “en écoute” (“listening”). Il attendra qu’un autre ordinateur désire joindre le notre, il pourra alors nous joindre sur ce port sans que nous ne prenions l’initiative d’engager nous même la connexion. Pour aider à comprendre, une analogie : Avec un téléphone, si vous attendez sa sonnerie (êtes à l’écoute de celui-ci), alors qqn pourra vous appeler et vous répondrez. Si au contraire vous ne cherchez pas à écouter la sonnerie en vous bouchant les oreilles, alors vous serez injoignable.

Il y a une distinction, c’est que pour le téléphone, plusieurs personnes peuvent écouter et attendre la même sonnerie, tandis qu’en informatique, 2 applications ne peuvent pas écouter simultanément sur le même port.

c) Globalement

Notons que les deux cas précédents se complètent : nous ne pouvons établir une connexion sortante vers un ordinateur que si ce dernier souhaite établir une connexion entrante. Notons également qu’un même numéro de port peut servir indifféremment à une connexion entrante ou sortante. L’utilisation de ports entrants ou sortant dépends de ce que l’application cherche à faire. Il se peut qu’elle ait besoin d’écouter sur un ou plusieurs port(s), voir aucun ! Idem pour les ports sortants.

Une application peut donc utiliser autant de ports entrants ou sortants qu’elle le souhaite.

D - TCP et UDP

Pour compliquer (mais pas trop non plus !), on distingue les ports TCP et UDP. Ce qui les distingue est une caractéristique technique non essentielle2). C’est comme si chacun des canaux avait lui même 2 sous-canaux. Pensez donc à connaitre le protocole (TCP ou UDP) utilisé par l’application, la plupart du temps, il s’agit de TCP.

E - Relation entre port et application

a) Une relation conventionnelle

Vous aurez peut être remarqué que l’on a tendance à associer une application précise (par expl: le navigateur internet) à un port précis (ici: le 80). Il en va de même pour la plupart des applications. Plusieurs faits établissent cette correspondance entre une application (ou plus précisément un service), et un numéro de port.

  • Le IANA est chargé d’officialiser cette correspondance pour certains services
  • Pour les autres services, ce sont les personnes à l’origine du projet qui conseillent un port par défaut
  • Dans certains cas, c’est vous-même qui configurerez le logiciel pour qu’il utilise toujours le même port

b) Une relation connue du système d'exploitation

Votre système d'exploitation est capable de connaitre, lorsqu’une application est lancée, quel(s) port(s) celle-ci souhaite utiliser. Cette capacité est exploitée par les pare-feux. A la base, un pare-feu ne fait que se fier au numéro de ports, et il indique “le port entrant x est autorisé” ou “le port sortant y n’est pas autorisé”. Désormais, avec cette capacité, il va pouvoir établir des règles en fonction de l’application plutôt que sur les ports. Cela simplifie grandement la tâche, par expl: si vous souhaitez autoriser le trafic internet d’eMule, vous aurez juste à spécifier au pare-feu que emule.exe est autorisé (autrement dit, vous “ajouterez eMule sur la liste des exceptions”). Les pare-feux qui ne s’interessent pas aux ports mais aux applications sont qualifiés de applicatifs.

F - Conclusion

Selon le type de pare-feu dont vous disposez, sa configuration demandera le nom du fichier .exe (éxécutable) de l’application que vous souhaitez autoriser, ou le(s) numéro(s) de port(s) utilisé(s) par cette application. La plupart des P2P ont besoin d’être joignables sur un port (c’est à dire d’écouter). Dans les paramètres (options/préférences) de ces P2P, vous pourrez spécifier vous-même quel(s) port(s) l’application utilisera. Il est bon de le connaitre, non seulement car cela peut vous aider à configurer votre pare-feu, mais aussi car les ports entrants sont ceux auxquels votre routeur devra s’intéresser. Un bon complément de cette partie théorique qui s’interesse davantage aux routeurs est l’article Comprendre un modem routeur.

III - Pratique

A - Les P2P et les ports

1) Liste des ports communément utilisés par les P2P

Vous la trouverez ici.

2) Sur quel port mon P2P écoute ?

a) Où aller ?
  • Dans les préférences du logiciel.
  • Utiliser une commande windows (Quel processus pour quel socket, pas netstat, une autre …)
  • Logiciels de monitoring (TCPView)
b) Choisir un numéro de port

En écoute, supérieur à 1024.

3) Tester si le port de mon P2P est accessible

a) Test intégré au logiciel
b) Sites web testant vos ports

B - Les pare-feux

1) Windows XP

  • Configurer celui du SP1
  • Configurer celui du SP2

2) Autres logiciels

Norton, Jetico, McAffee, ISafer, etc…

3) Mis en place par l'administrateur réseau

Dans les entreprises, les universités…

C - Le partage de connexion

1) Par routeur

2) Par ICS (Internet Connection Sharing, de Windows)

auteur 111110101011

1)
Un pare-feu bâtira ses règles de fonctionnement sur ce qu’il y a de fixe. Il ne cherchera pas à bloquer les ports dynamiques pour deux raisons : D’une part, les ports étant justement dynamiques, ils sont choisis aléatoirement et changent à chaque fois, et puisque nous ne pouvons pas les deviner nous-mêmes, nous ne créons pas de règles dessus. D’autre part, les ports sont utilisés suite à une communication qui a déjà été vérifiée, et qui dispose donc du feu vert pour faire ce qu’elle veut. Cela explique pourquoi, bien qu’une communication aille dans les 2 sens, il suffit de n’autoriser explicitement qu’un seul sens pour que ça marche.
2)
TCP et UDP sont ce que l’on appelle des protocoles. Leur principale distinction est que TCP est “orienté connexion” et assure une certaine fiabilité, ce qui n’est pas le cas d’UDP
docs/faq/p2p_et_ports.txt · Dernière modification: 04-04-2013 22:06 (modification externe)