PDA

View Full Version : Comment faire des règles pour un programme P2P: explications.


Climenole
March 2nd, 2006, 06:16 AM
Comment faire des règles pour un programme P2P

a) Comprendre les bases du protocole TCP

Le protocole TCP permet d'établir la connexion entre
un CLIENT et un SERVEUR.

En général le CLIENT est votre ordinateur
et
le SERVEUR est, par exemple, un serveur Web, un serveur Pop3, un serveur Ftp, etc.

Quand vous vous connectez à un serveur Web avec un navigateur
votre ordinateur (CLIENT) envoi en premier lieu une demande
de connexion à ce serveur. Dans le cas d'un serveur Web cette
demande est envoyée au port 80 de ce serveur à partir du
premier port disponible de votre ordinateur entre les ports
1024 et 5000.

Les informations sont transmises avec des paquets TCP qui comprennent
des informations de contrôle (par exemple des Flags) et pour certains
d'entre eux des données.

Ouverture d'une session

Client (PC) <<=====================================>> Serveur

=============== Demande de connexion: SYN =================>>

<<============= Connexion acceptée: ACK SYN ===============

=============== "OK message reçu": ACK ===================>>

Votre PC demande au serveur d'établir une connexion
avec un paquet TCP sans données et avec le flag SYN.

Durant une connexion c'est le seul paquet TCP SANS flag ACK.

Ce type de paquet est toujours envoyé d'un client vers un serveur.
Jamais l'inverse.
Si c'est le cas alors ce paquet est "anormal" et doit être bloqué.
VOIR B

(Même chose pour les autres paquets sans flag ACK
tels que FIN, SYN-FIN,SYN-FIN-PSH, etc.)



Transfert de données

========================= ACK ===========================>>
<<======================= ACK =============================

ou aussi

========================= ACK PSH =======================>>
<<======================= ACK PSH ========================

Fin de session

========================== ACK FIN ======================>>

<<======================== ACK FIN ======================

============================ ACK ========================>>

B) Comprendre la règle "Bloquer les paquets TCP entrants avec le flag SYN"

Cette règle est celle qui correspond à:

"Bloquer les connexions entrantes" dans le jeu de règles évoluées
"+TCP:Block incoming connections" dans le jeu de règles Phant0m

La raison de cette règle a été expliqué plus haut.

Les paquets entrants avec le flag syn de positionné visent principalement
les ports locaux(ceux de votre PC) :
135 : Rpc Dcom (utilisé par le ver Blaster!)
139 : imprimantes réseau et partage des fichiers
445 : SMB message block
etc.

Toutes les règles de blocage de paquets anormaux doivent être placés
avant cette règle sauf les règles de blocage des paquets non-bloqués
par les règles précédentes.

UDP Bloque le reste
TCP Bloque le reste
ICMP Bloque le reste
ET sans oublier la dernière règle OBLIGATOIRE
Bloquer tous le reste.(Verrouillage final du jeu de règles.)


Nous avons donc : (voir le jeu de règles évoluées)

1- Des règles de blocage de divers paquets anormaux
2- La règle de blocage des paquets TCP entrants avec le flag SYN
3- Des règles pour les applications (CLIENT)
4- Des règles pour bloquer le reste (UDP, TCP, ICMP)
5- La règle finale et obligatoire: Bloquer tous le reste.

Dans le cas des programmes de P2P votre ordinateur
est, comme pour les applications courantes, un CLIENT

ET

Il est aussi un SERVEUR ! ...


C) Un programme P2P fait de votre ordinateur un client ET un serveur.

La partie CLIENT de votre programme P2P
qui permet de vous connecter aux serveurs, d'obtenir leur liste etc
doit donc faire partie des règles pour les applications c'est-à-dire
le # 3 (voir ci-haut) ou encore les règles "client" doivent être placées
entre la règle #2: blocage des paquets TCP entrants avec le flag SYN
et
le #4:bloquer le reste (UDP, TCP, ICMP) ...

Cela est exactement la même chose que pour n'importe quelle application.

Les règles de la partie SERVEUR de ce type d'application doivent donc être placées
après le #1: blocage de divers paquets anormaux
ET
avant le #2 blocage des paquets TCP entrants avec le flag SYN.

Nous avons donc maintenant:

1- Des règles de blocage de divers paquets anormaux

Règle(s) pour la partie SERVEUR du programme P2P

2- La règle de blocage des paquets TCP entrants avec le flag SYN
3- Des règles pour les applications (CLIENT)
4- Des règles pour bloquer le reste (UDP, TCP, ICMP)
5- La règle finale et obligatoire: Bloquer tous le reste.

Il est très important de placer correctement la ou les règle(s)
de la partie SERVEUR au bon endroit dans la liste des règles...

D) Exemple avec le réseau P2P Edonkey (avec eMule ou ShareAza etc.)

Il faut que l'application soit dans la liste du filtrage logiciel,
que le filtrage logiciel soit actif et que l'application soit
indiquée comme application valable pour les règles :
bouton "application" dans l'édition des règles...

Voir les images qui suivent.

Climenole
March 2nd, 2006, 06:17 AM
1- Jeu de règles évoluées et emplacement des règles ...

Climenole
March 2nd, 2006, 06:18 AM
2- Jeu de règles Phant0m et emplacement des règles...

Climenole
March 2nd, 2006, 06:19 AM
3- R1 Serveur

Climenole
March 2nd, 2006, 06:20 AM
4- R1 serveur : détails

Climenole
March 2nd, 2006, 06:21 AM
5- La règle de blocage des paquets TCP entrants avec le flag SYN

Climenole
March 2nd, 2006, 06:23 AM
6- R2 connexion aux serveur eDonkey (client)

Climenole
March 2nd, 2006, 06:26 AM
7- connexion aux serveurs EDonkey (client) Détails

Climenole
March 2nd, 2006, 06:27 AM
8-Liste serveurs (client)

Climenole
March 2nd, 2006, 06:28 AM
9- liste serveurs (client) Détails