Propos et Commentaires du Climenole

2006/06/5

Règles pour Look ‘n’ Stop - partie 1

Classé dans : Look'n'Stop, Pare-feu, Protocoles internet, règles-Look’n\'Stop — Claude LaFrenière @ 21:42

Je me propose dans cette série d'articles de présenter un jeu de règles pour le pare-feu Look'n'Stop.

La connaissance des éléments des protocoles internet est un préalable indispensable pour la compréhension de ces règles. C'est par l'explication sommaire de ces protocoles que nous allons commencer.

Je me limite ici à un jeu de règles pour un système hors-réseau et utilisant une connexion internet PPPoE. Ce jeu pourra par la suite être adapté aux configurations avec DHCP, Routeur ou en réseau local.

protocols

1- Le protocole TCP-Ip et le rôle du Pare-feu

Le protocole TCP-Ip se présente comme un modèle en 5 couches: physique, liaison, réseau, transport et applications. Les couches de la pile TCP-IP concernées se limiteront au trois dernières qui touchent directement le sujet de cet article puisque c'est à ces niveaux qu'intervient le pare-feu.

Les protocoles IP sont définis dans les Request for Comments et permettent de différencier les paquets respectants ces normes de ceux qui en diffèrent. Les paquets hors-normes seront réputés malformées et possiblement malveillants.

Les normes sont dans l'ordre: les adresses Ip et en particulier les adresses réservées, le protocole Icmp, le protocole Udp et le protocole Tcp. Le même ordre sera reflété dans la liste des règles.

Cet ordre a été choisi parce qu'il commence par les normes les plus générales et se continu vers celles qui sont plus particulières. Les adresses Ip concernent toutes les normes qui suivent, l'ICMP dépend des normes précédentes et concernent l'ensemble des connexions indépendement des ports UDP ou TCP. Pour ce qui est de l'UDP les datagrammes sont principalement utilisés par le protocole de résolution des adresses Domain Name Service, la synchronisation Network Time Protocol et certaines applications telles que les réseaux P2P. Enfin le TCP est le protocole "principal" pour la plupart des applications et est l'un des plus utilisé par des applications internet.

Les adresses IP

Depuis 2005 les adresses IP sont classées selon le Classless Inter-Domain Routing qui remplace les classes A, B, C, D, E. L' IANA a réservé certaines plages d'adresses pour des fonctions particulières:

Unicast ou Point-à-point: les ex-classes A, B, et C et qui sont utilisable pour l'adressage sur internet comme adresses IP sources et destinations.

Multicast ou Multipoints: (l'ex-classe D) 224.4.0.0 - 239.255.255.255

Broadcast ou de Diffusion: 255.255.255.255

de même que des plages d'adresses réservées pour les réseaux locaux:

10.0.0.0 - 10.255.255.255

169.254.0.0 - 169.254.255.255

172.16.0.0 - 172.31.255.255

192.168.0.0 - 192.168.255.255 

puis 240.4.0.0 - 255.255.255.254 , gamme réservée par L'IANA

et enfin 127.0.0.0 -127.255.255.255 réservé au bouclage en local.

Ces plages d'adresses ne doivent pas être retrouvées sur internet et dans le cas contraire elles sont le fait de routeurs mal configurés ou signalent des paquets malveillants. Il faut aussi noter que les adresses Ip légitimes ne peuvent finir par 0 ou 255 la première spécifiant le réseau lui-même, l'autre étant utilisée pour la diffusion pour la gamme d'adresse.

Wikipedia: Adresse IP

L'ICMP

L'Internet Control Message Protocol ne concerne aucun port en particulier et n'est principalement destiné qu'à signaler les incidents se produisant sur le réseau.

À l'exception des codes/types Echo request, Echo Reply et Traceroute les codes et types de ce protocole ne sont pas utilisés directement par les applications réseau. Cependant l'utilisation de sondages d'adresses Ip utilisant l'Icmp est une des formes les plus simples pour détecter la présence d'un système actif correspondant à cette adresse IP.

Le rôle du pare-feu est de ne permettre que l'émission d'un requête d' "echo", la réception de la réponse à cette requête et l'utilisation du "Traceroute". C'est ce qui assure, au niveau de ce protocole, la furtivité de votre système. Toute sollicitation de celui-ci par un sondage Icmp doit être ignorée.

Wikipedia: ICMP

L'UDP

L'User Datagram Protocol permet la transmission de paquets définie par une adresse Ip et un numéro de port sans garantir que la réception s'est faite ou non. Il est principalement utilisé pour le service de résolution des noms permettant la traduction entre un URL et une adresse IP, les échanges permettant d'établir une adresse Ip avec le DHCP, la synchronisation avec les serveurs Network Time Protocol et des appplications en streaming .

Le protocole UDP sert en particulier à transmettre des datagrammes pour le protocole NetBios, pour transmettre le "spam" du service d'affichage des messages vers les systèmes mal protégés et pas à jour de même que certain types de sondages tel que le "scan UDP ICMP_PORT_UNREACHABLE" qui utilise les paquets UDP pour déclencer une réponse ICMP signalant quels sont les ports ouverts ou fermés sur le système visé par le balayage.

D'autres méthodes utilisent des paquets malformés pour tenter d'exploiter des faiblesses des systèmes d'exploitation. On peut aussi signaler au passage les paquets UDP en provenance de sites de surveillances des réseaux d'échanges pair-à-pair et d'envoi de "fakes" sur de tels réseaux.

Les transmissions utilisant l'UDP doivent se limiter à celles qui sont légitimes: DNS , DHCP , NTP et aux applications de streaming. Tout autre paquet UDP devant être ignoré.

Wikipedia: UDP

Le TCP

Le Transmission Control Protocol est celui qui retiendra le plus notre attention.

Une bonne façon de comprendre le protocole TCP est à de présenter une exemple de connexion entre un client et un serveur afin de comprendre ce que sont ces échanges et ainsi différencier les paquets légitimes de ceux qui doivent être ignorés.

Exemple d'une connexion d'un navigateur à un serveur web

Lorsque vous entrez l'URL d'un site web dans le champ d'adresse de votre navigateur la premère chose qui est vérifiée par le système d'exploitation est la présence de cet URL dans le fichiers HOSTS. Si cet URL est présent alors le navigateur se connecte à l'adresse IP indiquée dans le fichier HOSTS. La première ligne du fichier HOST se présente obligatoirement ainsi:

127.0.0.1 localhost

En général les adresses présentes dans ce fichier sont celles qui doivent être bloquées pour des raisons de sécurité. En ce cas la ligne correspondant à cet URL se présente par exemple ainsi:

127.0.0.1 URL_du_Site_malveillant.com

En ce cas la connexion boucle en local et l'accès au site à problème est interdit.

Dans le cas probable où l'URL du site n'est pas présent et bloqué par le fichier HOST le système fait une requête de résolution des noms vers le serveur DNS. Puis traduit cet URL en adresse IP, utilise le premier port local disponible entre 1024 et 5000 et initie la connexion en envoyant un paquet TCP ne contenant aucune donnée et avec le flag SYN vers le port 80 en écoute (listening). Le serveur accepte l'établissement d'une connexion sollicitée par le client et renvoie un paquet TCP avec les flags SYN-ACK.

La connexion entre le client et le serveur entre dans l'état "established". La connexion se poursuit par l'échange de paquets TCP avec les flags SYN-ACK, ACK et à l'occasion ACK-PSH.

La fermeture de la session de connexion se produit lorsque le client envoie un paquet TCP avec le flag FIN signalant la fermeture de la connexion. Cette fermeture est confirmée par l'envoi par le serveur d'un paquet TCP avec les flags ACK-FIN et se termine par l'acquiescement du client avec un paquet TCP avec le flag ACK.

Les points les plus importants à retenir de cet exemple simplifié sont:

1- que le paquet TCP avec le flag SYN qui introduit la connexion n'est envoyé que depuis le client vers un serveur et jamais l'inverse.

2- que les paquets TCP transmis de part et d'autre durant la connexion ont tous au moins le flag ACK

3- Que le paquet TCP avec le flag FIN n'est lui aussi transmis que par le client vers le serveur.

Dans le cas où le port du seveur n'est pas en écoute mais fermé la réponse à la demande de connexion SYN du client recevra un paquet TCP avec les flags ACK-RST suivi d'un réponse du client avec un paquet TCP avec le flag ACK.

En somme, l'examen des transmissions TCP normales permet de connaître les combinaisons de flags légitimes de celles qui ne le sont pas et de même que les destinataires valides selon qu'il s'agisse d'un client ou d'un serveur.

Enfin les fonctions des flags permettent de reconnaître les combinaison illégales.

Les paquets TCP avec le seul flag SYN ou FIN ne sont légitimes que depuis le client vers un serveur mais pas l'inverse.

Les paquets TCP échangés durant la connexion ont tous au moins le flag ACK.

Les combinaisons possibles sont SYN (vers le serveur), FIN (vers le serveur), ACK-SYN, ACK-PSH, ACK-URG, ACK-PSH, ACK-RST et ACK.

Toute autre combinaison étant réputée anormale et présumée d'origine malveillante tel que des paquets TCP sans aucun flag, avec tous les flags ou avec des combinaisons absurdes tel que SYN-FIN, PSH-URG-FIN, etc.

La non-réponse à toute sollicitation visant votre ordinateur comme un serveur assure le caractère furtif à votre système au niveau du protocole TCP. Comme vous le constatez il s'agit d'une défense plutôt "ZEN" ;)

Wikipedia: TCP

Les prochains articles à paraître seront:


2- Présentation de l'édition des règles de look'n'Stop

3- Le jeu de règles proposées

4- Comment créer facilement de nouvelles règles d'applications

Outil suggéré pour l'étude des protocoles internet:Packetyzer

7 commentaires »

  1. Salut Climenole

    Dans ta liste des adresses non routables, je n’ai pas trouvé la plage 192.168.x.x

    Est-ce volontaire ?

    Commentaire par Christian — 2006/06/7 @ 22:39

  2. Salut Ypoons :)

    Oups ! :-O !

    Merci d’avoir signalé cet oubli. En effet, cette gamme d’adresse ne doit doit pas se retrouver sur internet.
    Je fait la correction immédiatement.

    Merci.
    :)

    Commentaire par climenole — 2006/06/7 @ 22:53

  3. salut

    ce jeux de regle est-il mieux que la regle Phant0m`s-v6-Final ?
    ou regroupe t-il quasiment les memes securite ?
    peut-ton se procurer le .rls ?

    Commentaire par youtua — 2006/07/30 @ 5:43

  4. Bonjour youtua :)

    Un jeu de règles meilleur que l’autre? :D

    Je n’ai pas l’intention de me lancer dans une polémique là-dessus (d’autant que l’auteur des dites règles, à ce qu’il me semble, est quelque peu susceptible… ;-) )

    3 remarques cependant:

    1- Je soutient qu’il N’existe PAS de jeu de règles “ultimes” …

    2- Croire qu’un tel jeu de règles existe signale en général que l’on a rien compris ni à ces règles ni à d’autres

    3- Le jeu de règles que je propose est DOCUMENTÉ et suppose que l’on comprenne la raison d’être de celles-ci. Ne faut-il pas lire les 6 articles? …

    Il est écrit à la fin du 6 ième article:
    « Les règles proposées sont une partie des règles d’applications que j’utilise et ont toutes été utilisées sur une longue période. Puisqu’ elles marchent correctement sur mon système il n’y a aucune raison que cela ne soit pas le cas chez vous. Je suis disposé à donner des éclaicissements et des réponses à vos questions mais je suppose que vous êtres capables de vous débrouiller avec les informations que je vous ai données dans la série d’articles sur Look’n’Stop. »

    :)

    Commentaire par climenole — 2006/07/30 @ 7:45

  5. Bonjour Climenole
    J’aimerais beaucoup utiliser ton jeu de règles car je le trouve logique et ordonné, mais je n’arrive pas à établir de connection. Mon modem ouvre une session sur Sympatico et ensuite plus rien. Firefox cherche toujours… J’ai bien modifier les IP du DNS allowed… le journal indique block all other… donc il y a une règle trop étanche… Je suis aussi du Québec.
    MERCI Luiji

    Commentaire par Luiji — 2006/08/1 @ 9:47

  6. Salut Luiji :)

    Se pourrait-il que ton modem soit un modem-routeur utilisant le DHCP? Si c’est le cas il faut autoriser les paquets UDP pour les ports 67 et 68 (ports locaux ET ports distants) selon la règle plus plus simple possible pour le DHCP. Cette règle peut être placées après la règle autorisant le DNS.

    Pour ce qui est des adresses IP du serveur DNS de sympatico tu peux les trouver avec la commande ipconfig.
    Fait un copié-collé de cette ligne dans un raccourci:
    %windir%\system32\cmd.exe /k C:\WINDOWS\system32\ipconfig.exe /all

    Tu peux aussi poser la question sur le forum de LNS.

    J’espère que cela ca t’aider.
    :)

    Commentaire par climenole — 2006/08/1 @ 14:20

  7. Bonjour à tous :-)

    Luiji m’a signalé ce qui suit par courriel:

    « Bonjour Claude

    J’ai enfin trouvé ce qui bloquait Firefox et même des fois aussi Thunderbird
    Il me fallait simplement ajouter ces applications à 1 ou 2 règles de plus
    [...]
    Les règles fonctionnent parfaitement et ça glisse dans l’huile.

    MERCI beaucoup
    et au plaisir de se lire à nouveau

    Luiji
    »

    Problème réglé! ;-)

    Commentaire par climenole — 2006/08/5 @ 11:24

Flux RSS des commentaires de cet article. URI de Trackback

Ajouter un commentaire

Publié sur WordPress.