Fonctionnement du Firewall.
Nous allons nous attacher ici à la fonction filtreur de paquet du firewall. Avant de continuer plus loin, un petit mot d'explication sur ces fameux paquets.
En gros et sans entrer dans les détails pour que tout le monde comprenne, sur Internet les transferts de données sur le réseau sont gérés grâce à un protocole nommé TCP/IP (Transmission Control Protocol / Internet Protocol), venant du monde UNIX. Ces protocoles (ensembles de règles régissant des transferts d'informations) sont basés sur le principe de la transmission de données par paquets: toute information voyageant sur le réseau est divisée en "morceaux", de taille fixe. Cela permet de ne pas avoir à retransmettre l'intégralité d'une information (un fichier par exemple) en cas d'erreur: il suffit de ne réexpédier que le paquet qui n'est pas arrivé à destination ou qui a été corrompu lors de son trajet entre l'émetteur et le récepteur.
Pour envoyer une information à un ordinateur, il faut pouvoir l'identifier,
c'est-à-dire lui donner une identité qui lui est propre. Pour ce faire, on utilise des
adresses numériques afin de désigner chaque machine appartenant au réseau. Ces adresses
sont formées de 4 entiers codés sur 8 bits (allant donc de 0 à 255), séparés par des
points. C'est ce que l'on appelle l'IP d'un ordinateur. Exemple: 209.170.56.239 est
l'adresse du serveur de www.anti-hack.org. Chaque
paquet transitant sur le réseau dispose donc de l'adresse du destinataire,
ainsi que celle de l'expéditeur (afin de pouvoir lui demander la retransmission d'un
paquet en cas d'erreur).
En plus des adresses dans les paquets, il y a un port. Un port pourrait correspondre dans la vie courante a une boîte aux lettres d'un immeuble. En réalité l'adresse ne suffit pas pour envoyer une lettre à une personne qui se trouve dans un immenble à appartement. Sur internet c'est la même chose, en plus de l'adresse, il y aura un port pour l'émetteur, cad qu'il faut spécifier de quel port le paquet de données est parti et à quel port de destination il est destiné. Quans vous surfer sur le NET, et que vous demandez à afficher une page du serveur Anti-Hack par exempe, il va envoyer un paquet sur le port 80 à l'adresse 209.170.56.239.
Avec le firewall filtreur de paquets, il est possible de faire des restrictiosn sur les ports et sur les IP de manière simultanée ou indépendante. Je peux ainsi interdire le passage de paquets en provenace de toutes les adresses commencant par 195.238.*.* par exemple. Je vais donc introduire dans mon firewall ce que l'on appelle une rêgle qui va ressembler à ceci :
| Service | In | Out | Allow/Block | Remote Adress | Remote Port | Local Adress | Local Port | Priority | Options |
| TCP/IP | I | Block | 195.238.*.* | All | My adress | 5000 | 90 | LW |
Dans la première colonne nous pouvons voir TCP/IP ce qui veut dire que la rêgle que
je suis en train de créer ne s'appliquera que au protocole TCP/IP et pas aux autres.
"IN" est une case à cocher, si je met un I dedans, cela veut dire que cette
rêgle s'applique uniquement pour les paquets entrants.
Si je laisse OUT à vide, celle rêgle ne s'appliquera que pour les paquets entrants et
non pour les paquets sortants.
Allow Block c'est ici que je décide si je veux laisser passer ce genre de paquets de
données ou si je le stoppe.
Remote Adress, je vai mettre dans cette case les adresse des expéditeurs auquels je veux
appliquer la rêgle.
Dans remote port je vais spécifier sur quels ports de l'ordinateur de l'expéditeur je
veux appliquer ma restriction.
Enfin local Adress, j'ai mis My adresse comme cela chaque fois que je change d'adresse IP
cad à chaque connection à Internet je ne dois pas réécrire mes informations.
Local Port est le port sur mon ordinateur que je veux défendre ici j'ai mis le port 5000
comme ca même si le cheval de troie (socket de troie version 1) est installé dans mon
ordinateur, le firewall va intercepter les paquets toutes les personnes qui ont une IP
195.238.*.* qui veulent interroger mon port 5000 pour savoir si je suis infecté ne
recevront jamais aucune réponse et passeront leur chemin.
Priority c'est utile quand nous avons de nombreuses rêgles sur un firewall, certaines
tres générales et d'autres extrêmement précises qui peuvent se chevaucher.
Exemple :
| Service | In | Out | Allow/Block | Remote Adress | Remote Port | Local Adress | Local Port | Priority | Options | Réf |
| TCP/IP | I | Block | *.*.*.* | All | My adress | 5000 | 90 | LW | 73 | |
| TCP/IP | I | Allow | 195.13.21.179 | All | My adress | 5000 | 80 | 74 |
Dans le cas présent de ces deux rêgles, il y en a une qui dit que le firewall doit stopper tout ce qui vient de l'extérier à destination de mon port 5000 et l'autre raconte que l'adresse 195.13.21.173 a accès à mon port 5000. C'est ici que vient jouer la priorité des rêgles. Dans le cas de mon firewall au plus le chiffre est petit au plus la priorité est grande ainsi même si tout est bloqué sur mon port 5000, l'adresse 195.13.21.172 aura accès a celui-ci car de toutes les rêgles qui s'appliquent à un cas donné, on prendra toujours cele de priorité la plus élevée et en cas de priorité égale, il choisira au hasard...
Reste les deux petites lettres dans la colonne de droite qui sont des options d'avertissement. Chez moi L correspond à log et W à Warning. Il va donc lors de l'applicaion de cette rêgle me générer un message d'avertissement et l'enregister dans un fichier. Le message sera similaire à celui-ci :
14:45:43: Dial-Up Adapter [0000][Ref# 73] Blocking incoming TCP: src=195.238.0.1, dst=195.13.21.173, sport=9864, dport=5000.
En analysant la ligne on verra que a 14H45 et 53 Secondes, via mon modem il a bloqué un packet TCP/IP en provenance de l'IP 195.238.0.1 et a destination de 195.13.21.173 qui etait à ce moment là l'IP de mon ordinateur. En plus de ca on peut voir le port source et le numéro de la rêgle qui a été applliquée pour générer cette erreur à savoir le 73.