Propos et Commentaires du Climenole

2007/06/18

LnS Firewall Climenole’s rules set V. 3 - Introduction

Classé dans : Climenole's rules set, Firewall, Look'n'Stop, Rules set — Claude LaFrenière @ 6:53

Hi Gentle Readers :)

One of the most frequent question about rules set firewall is: “Where I put that rule in the list?” I’ll try to find a solution by adding to each rule name a code giving the relative position of the rule in the list.

overview-small.jpg

The general syntax for the rule name will be easy to understand with this example of a rule for basic web browsing :

Name of the rule:

{R. 80,01}; [TCP] { HTTP }

Description of the rule:

[S/optional: else {S..0000000} or G]
[Hyper Text Transfer Protocol]
Firefox, Opera, IE

The “{R. 80,01}” means: a rule in the rules subset R , remote port 80, one remote port only.

The “; [TCP] { HTTP } ” means : a rule using TCP protocol (The “Transport layer of the TCP-IP protocols) and using the port related to the HTTP ( the “Application level layer” of the tcp-IP protocols).

The description: “[S/optional: else {S..0000000} or G]” means : this is a specific rule (one program must be included at least in this rule othewise the more general rule {S..0000000} will be used instead.

The “or G” means: you may leave it as a general rule anyway… [This will be more clear later...]

There is an other coded indication in the rule name:

{{ rule name }} means: packets authorised in and out for general rule
{ rule name } means : packets authorised in and out for specific rule
{{ rule name } means : packets authorised incoming only
{ rule name }} means: packets authorised outgoing only
{ * rule name } means: packets authorised in and out for a Server rule


<< rule name ! >> means: packets blocked in and out
<< rule name ! > means packets blocked incoming only
< rule name ! >> means : packets blocked outgoing only

In the rule description there is also some codes:

G = general rule or for any program

S = specific rule: at least one program must be listed in that rule
(this is mandatory for server rules and Udp rules …)[Exception: the DNS rule...]

S/C means Specific rule and must be configured: most of the time the port used in the rule must be configured also in the program like utorrent for example.

u+e = if needed, this rule must be unblocked (remove the red dot) and enable ( check the first column…)

experimental = self obvious. This rule was not fully tested and may require some fixes…

recommended: not a mandatory rule but it’s better to have it.

mandatory: you must have this rule!

optionnal: mostly for TCP applications.

Normally TCP application used the general rule “{S..0000000}; [TCP] {{ Common Internet Applications }}” and you don’t need more. Used these rules if you want it.

testing: some rules are created for testing or learning.

This is for “Geek” fun !!! Mostly about the TCP flags used in connections.

See rules {S. 0}; [TCP] {{ ACK }} to {S. 7}; [TCP] {{ RST }}.

Needed: rule for a server or for Udp protocol. The rule must be specific!!!

That’s all for now. The next articles will explained the rules for each rule’s subsets and give you some hints about the Internet packets filtering and the methodology used to create a “well built” rules set. In subsequents articles I will give you a more accurate details about routers and LAN configuration rules. Finally I will finished with an UNofficial Frequently Asked Questions for Look’n'Stop and firewalls in general …

Stay tuned ! ;)

article-in-pdf.jpg

2006/06/30

Censure internet en Chine: comment passer outre?

Classé dans : Chine, Libertés, Protocoles internet, censure, internet, 中国网络审查 — Claude LaFrenière @ 8:57

中国网络审查

Revue de l’internet en Chine

Des chercheurs de l’Université de Cambridge, U.K.: Richard Clayton, Steven J. Murdoch, et Robert N.M.Watson auraient découvert comment passer outre à la censure d’internet par les autorités chinoises en étudiant le près les méthodes utilisée au niveau du protocole TCP-IP.

Ils expliquent que le soi-disant Grand Pare-feu de Chine fonctionne en grande partie en inspectant les paquets TCP pour repérer les mots-clés devant être bloqués. Si le mot-clé est présent alors un paquet TCP de réinitialisation (paquet TCP avec le flag RST) est retourné aux points d’origine et de destination de la connexion fermant ainsi la connexion. Toutefois le paquet original est passé sans modifications et si les points de connexion ignorent les paquets de réinitialisation provenants du filtre des censeurs, la connexion se poursuit sans problème. Une fois qu’une connexion a été bloquée le filtre des censeurs fait d’autres tentaives contournables pour bloquer la suite les tentatives de connexions des points d’origine et de destination. Cette dernière méthode peut alors causer une attaque en déni de service envers les points de connexion.

Les auteurs expliquent qu’ils ont d’abord accédés à une simple page web normalement comme ils s’y attendaient. Comme il peut être constaté vec la transcription du vidage de paquets montré ici, après la poignée de main en trois étapes normales (SYN, SYN/ACK, ACK) le client utilisant dans l’exemple le port 53382, envoie une commande HTTP GET au port HTTP 80 du serveur pour obtenir le dossier racine (/) qui est transféré normalement:

  1. cambridge(53382) -> chine(http) [SYN]
  2. chine(http) -> cambridge(53382) [SYN, ACK]
  3. cambridge(53382) -> chine(http) GET / HTTP/1.0<cr><lf> etc.
  4. chine(http) -> cambridge(53382) … Etc.
  5. cambridge(53382) -> chine(http) [ACK] et ainsi de suite…

Par contre quand ils ont envoyé une requête incluant un petit fragment de texte (falun) dont ils avaient prévus le blocage la confirmation de leur hypothèse s’est rapidement produite:

  1. cambridge(54190) -> chine(http) [SYN]
  2. chine(http) -> cambridge(54190) [SYN, ACK] TTL=39
  3. cambridge(54190) -> chine(http) [ACK]
  4. cambridge(54190) -> chine(http) GET /?falun HTTP 1.0<cr><lf>…
  5. chine(http) -> cambridge(54190) RST TTL=47, seq=1, ack=1
  6. chine(http) -> cambridge(54190) RST TTL=47, seq=1461, ack=1
  7. chine(http) -> cambridge(54190) RST TTL=47, seq=4381, ack=1
  8. Etc.

L’Étude au complet est disponible ici en format PDF: Ignoring the Great Firewall of China

Voir aussi sur Wikipédia:Censure de l’internet en RPC

Piste trouvée via Xeni Jardin de Boing Boing: Net censorship: HOWTO bypass China’s Great Firewall

Voir aussi ces nouvelles récentes sur le sujet:

China targets blogs

Baidu launch chinese blogging platform

A+

2006/06/27

Des règles climenole… et des fausses!

Bonjour à tous ;)

J’ai complété tard aujourd’hui le dernier article de la série sur Look’n'Stop et j’en ai profité pour mettre les règles suggérées en téléchargement ici… et sur les réseaux P2P Gnutella et eDonkey. Je reproduit plus bas la partie de l’article concernant le téléchargement des ces règles suggérées avec les informations d’identification du fichier.
J’écrivais alors une mise en garde envers des “fakes” possibles. Je ne croyais pas si bien dire car immédiatement après avoir fait le “release” du jeu de règles climenole je me suis amusé à faire une recherche portant justement sur “règles climenole”… pour tomber sur des fichiers disponibles en téléchargements identifiés comme étant justement les “Règles climenole” ! Surprise et incrédulité !
J’ai alors téléchargé ces merveilles que voici:

Fakes01

Mon anti-virus n’a pas tardé à réagir et la douce voix de la Demoiselle d’Avast Anti-virus m’a sussuré à l’oreille: « Il y a un cheval de Troie sur votre ordinateur »…

Fakes02

L’extension des fichiers auraient dû me mettre la puce à l’oreille de même que la taille des machins. Combien d’internautes se sont fait prendre par ces fichiers avec cheval de Troie distribuée par de minables malveillants sous mon identité? Et depuis combien de temps?
Mais plutôt que de pester contre ces minus cela m’inspire pour une nouvelle série d’articles portant justement sur les “malwares”, les yahous dégénérés qui les fabriquent et les distribuent et, pourquoi pas, sur la psychologie profonde de ces tarés. Le vandalisme sur internet tout autant que celui qui défigure nos Cités, le piercing et le tatooing objectifs et subjectifs, la laideur à la mode et la bêtise rampante des vermines est un sujet du plus haut intérêt! (Si j’en attrape un je me promet bien de le conserver dans un bocal avec du formol ou, s’il est encore vivant, dans un Punkarium pour observer ses moeurs, ses modes d’alimentation et de reproduction et ses autres caractéristique (Sont-ils ovovivipares ou pas?).

« Il faut l’avouer, certains de ces êtres n’offrent pas un aspect bien esthétique: mais la connaissance du Plan de la Nature en eux réserve, à ceux qui savent voir le pourquoi des choses et qui aiment vraiment connaître, des plaisirs inexprimables. Il ne faut donc pas céder à une répugnance puérile et nous détourner de l’étude du moindre de ces animaux: en toutes les parties de la Nature, il y a à admirer. »

ARISTOTE, Les parties des animaux, I, 5, 644 b

———————————————————————————
Ceci étant dit revoici les informations sur le fichier authentiquement “Climenole”:

Jeu de Règles pour télécharger et importer dans Look’n'Stop

Voici quelques règles à télécharger. Vous pouvez les essayer telles quelles, les modifier ou vous en inspirer pour en créer de meilleures. Ces règles sont publiées sous une licence Creative Common. Merci de respecter les termes de cette licence.
Creative Commons License
Cette création est mise à disposition sous un contrat Creative Commons.

Règles Climenole version 1

Le nouveau jeu de règles “climenole version 3″ est disponible sur le forum officiel de Look’n’Stop:

Jeu de Règles Climenole Version 3 Français

The new climenoles rules set version 3 is available in the official Look’nStop forum:

Climenole’s Rules Set Version 3 English

Notes de version:

Disponibles sur le forum de Look’nStop

;-)

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

Comment créer des règles pour vos applications - troisième partie

1- Résumé de l’article précédent

Nous avons déjà vu dans l’article précédent qu’il est possible d’utiliser les entrées du journal pour déterminer les règles pour une application. Dans les cas les plus faciles cela peut se faire directement avec le journal tel qu’il se présente dans l’onglet “Journal” de Look’n'Stop sinon en utilisant le format brut du journal avec un chiffrier. Cette dernière méthode permet de choisir plus facilement les éléments à conserver, de trier les colonnes pour regrouper les données et obtenir un aperçu ordonné des traces laissées par une application au cours des connexions. Bref il faut:

  1. Créer une règle temporaire sans restrictions pour l’application à surveiller
  2. Placer cette règle immédiatement après la règle pivot
  3. Utiliser le programme en essayant toutes ses fonctions
  4. Utiliser un chiffrier pour ne conserver que les lignes de TEST et les trier
  5. Créer un jeu de règles de test à partie des résultats de la “phase 1″ du test
  6. Conserver la première règle TEST comme “garbage collector” durant la “phase 2″
  7. Recommencer à partir de l’étape 3 et rafinez vos règles.

2- La méthode d’élaboration des règles et les applications P2P

La méthode est relativement facile à utiliser avec la plupart des applications. Dans le cas d’applications “purement” serveur, la règle de test devrait évidemment être placée avant la règle pivot. Toutefois il serait surprenant que cela soit nécessaire; les ports locaux utilisés par le serveur sont parmis les ports “bien connus”.

Un problème se pose par contre pour les applications P2P, celles-ci étant à la fois des applications clientes ET des applications serveur. Comment alors déterminer les règles “serveur” devant être placées avant la règle pivot et les règles “clientes” placées après?

Voici comment faire:

  1. Créez une règle de Test “client” et positionnez-la comme nous l’avons déjà vu.
  2. Créez une règle de Test “serveur” exactement identique mais cette fois-ci positionnez-la immédiatement avant la règle pivot.
  3. Utilisez votre programme. Vous allez remarquer que seule la règle de Test “serveur” est utilisée, l’autre n’étant pas prise en compte…
  4. Désactivez la règle de Test “serveur” vous allez constater que cette fois-ci seule la règle de Test “client” est prise en compte ET que vous avez des blocages signalés par la règle pivot. C’est exactement ce que nous voulions!

Les captures d’écran vont vous permettre de comprendre de quoi il s’agit.

Les deux règles de Test sont activées et le programme est mis à l’essai.

Test-Shareaza-02

Ce qui nous donne ces entrées au journal:
Test-Shareaza-01

puis la règle de Test “Serveur” est désactivée et cela occasionne des blocages.
Test-Shareaza-03

Ce qui donne en fin de compte les données suivantes: Test-Shareaza-04

La partie A indiquée en mauve comprend toutes les entrées mais sans que nous sachions s’il s’agit de la partie cliente ou serveur. Par contre nous connaissons déjà les ports utilisés: 6346, 6347, 6348 puis des ports de la gamme 1024-5000, enfin des ports hors de cette gamme.

La partie B indiquée en bourgogne signale les blocages après avoir désactivée la règle Test “serveur”. Nous obtenons de cette façon ce que nous voulions savoir: quel est le port local utilisé par la partie serveur: 6346 en TCP. Notez que parmi les ports bloqués par la règle pivot, seuls ceux indiqués ici dans la partie A doivent être pris en compte. Des blocages sur les ports 135, 445 ou autre ne doivent pas être pris en comptes puisqu’ils ne sont pas reliées à ceux utilisés par l’application surveillée.

Les parties C en vert et D en marine nous donnent les ports utilisés par la partie cliente une fois le blocage activé: 6346 en TCP et UDP.

Nous avons donc obtenus rapidement toute une série d’indications sur les port utilisés en local et en distant, avec quels protocoles et s’il s’agit de la partie cliente ou serveur. Nous avons donc tous les éléments nécessaires pour élaborer un premier jeu de règles qui pourront par la suite être testées et rafinées sans trop de problèmes avec la méthode connue: d’abord des règles pas trop restrictives, puis une autre phase de test et enfin la rédaction des règles définitives.

3- En guise de conclusion temporaire…

Ainsi s’achève cette série d’articles sur Look’nStop. Si ces articles vous ont permis de mieux connaître les protocoles internets et les possibilités de filtrage et de surveillance de Look’n'Stop mon objectif principal sera atteint: vous permettre de maîtriser un des meilleurs pare-feu à règles pour Windows.

;-)

4- Jeu de Règles pour télécharger et importer dans Look’n'Stop

Voici quelques règles à télécharger. Vous pouvez les essayer telles quelles, les modifier ou vous en inspirer pour en créer de meilleures. Ces règles sont publiées sous une licence Creative Common. Merci de respecter les termes de cette licence.
Creative Commons License
Cette création est mise à disposition sous un contrat Creative Commons.

Jeu de règlesClimenole version 1 règles climenole version 1 <<== (Enregistrez la cible du lien sous…)

Le nouveau jeu de règles “climenole version 3″ est disponible sur le forum officiel de Look’n’Stop:

Jeu de Règles Climenole Version 3 Français

MISE à JOUR 28 juin 07:

Jeu de Règles Climenole Version 3.01 Français

The new climenoles rules set version 3 is available in the official Look’nStop forum:

Climenole’s Rules Set Version 3 English

UPDATE June the 28th , 07:

Climenole’s Rules Set Version 3.01 English

Notes de version:

Disponibles sur le forum de Look’nStop

)[Attention aux "fakes"... :-( ]

Mise à jour 27 juin 2006 21:25 EST

Effectivement des fakes sont en circulation et identifiées à mes règles.

MISE EN GARDE IMPORTANTE

De Fausses “Règles Climenoles” en circulation sur les réseaux P2P

Des Règles Climenole … et des FAUSSES!

5- Autres ressources

La FAQ de Look’n'Stop
Le Forum de Look’n'Stop

A+ ;-)

2006/06/26

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

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

Comment créer des règles pour vos applications - deuxième partie

La façon la plus simple créer des règles spécifiques pour une application est de l’utiliser sans lui donner de restrictions pour obtenir les traces de son activité et ainsi avoir les éléments nécessaires pour l’élaboration des règles.

Il faut d’abord s’assurer que, dans les options avancées, l’option “Fichier journal au format brut” est coché. Par la suite il faut:

1- Que l’exécutable de l’application soit ajouté au filtrage logiciel sans lui mettre de restriction.

exemple01-0

2- Ajouter une règle de test en TCP/UDP autorisant tous les ports locaux et distants de même que toutes les adresses locales et distantes.

exemple01-2

3- Placer cette règle immédiatement après la règle pivot: blocage des paquets TCP entrants avec le flag SYN (dans le jeu de règles proposé { Q.999},[EB], SYN Entrant ).

exemple01-1

4- Ajouter l’application surveillée dans cette règle TEST et utiliser cette application pendant un certain temps pour permettre d’avoir un bon échantillonage dans le journal.

exemple01-3

Exemple01-4

5- Faire une copie du journal au format brut se trouvant dans C:\ProgramFiles\Soft4ever\looknstop\logs de .log en .txt

exemple01-6
.

6- Importer le journal brut en .txt dans un chiffier tel que MS Excel ou OO Calc en tant que fichier avec champs séparés par des virgules.

.

exemple01-7

.

7- Ne conserver du journal au format brut que les lignes concernant la règle TEST et faire un tri portant sur la dernière colonne correspondant au champ “Port de Destination” et supprimer les colonnes inutiles.

exemple01-8

Le format des entrées du journal brut pour le filtrage internet des paquets TCP/UDP se présente comme ceci en commençant par le premier champs de gauche (colonne A):

  • A- Date
  • B- Heure en format UTC
  • C- la mention UTC
  • D- D = Download ou U = Upload
  • E- 1 = autorisé ou 0 = bloqué
  • F- Numéro de séquence de l’entrée au journal
  • G,H,I- Identification de la règle: dans le cas du jeu de règle proposé si des virgules on été utilisées comme ceci: {R.00000.00}, [AA], TEST vous aurez trois colonnes correspondant à ces champs sinon une seule dans le cas {R.00000.00} [AA] TEST.
  • J- Type Ethernet 800 = IPV4
  • K- Taille des paquets
  • L- IP Source
  • M- IP Destination
  • N- Numéro de Protocole: 6 = TCP, 17 = UDP
  • O- Port Source
  • P- Port Destination

Les colonnes minimales à conserver sont donc les colonnes D,L,M,N,O,P. À partir de ces informations il sera possible d’élaborer des règles spécifiques pour l’application. Il faut noter que les premières règles élaborées ne doivent pas être trop restrictives et devront la plupart du temps être corrigées.

Les nouvelles règles devront être elle-mêmes testées en les plaçant immédiatement après la règle de blocage des paquets TCP entrants avec le flag SYN comme à l’étape 3 ET imméditement suivies par la règle TEST pour “attraper” les paquets restants (ce qui permet de rafiner les règles en tenant compte de ces “restes”.).

En somme il est parfois nécessaire de s’y prendre à deux ou trois fois avant d’obtenir un jeu de règles spécifique à une application. Dans le cas des applications client+serveur, tel que les applications P2P, le problème se corse car la méthode mentionnée doit être modifiée pour accomoder les paquets TCP entrants avec le flag SYN correspondants à ceux de la partie serveur de l’application. Pour le moment nous nous limitons à des applications internets clientes uniquement.

La plupart de ces applications utilisent les ports locaux 1024 à 5000 pour se connecter au(x) port(s) distant(s) des serveurs et utilisent le protocole TCP mais il y a parfois des exceptions. Certaines d’entre-elles sont particulièrement corriaces et requièrent de la ténacité et de la débrouilllardise pour en venir à bout. Les traces du journal brut, la documentation lorsqu’elle est valable et des talents de détectives sont nos meilleurs atouts.

Dans l’exemple trivial donné ici, le navigateur Opera est utilisé pour l’accès à un site web, à une connection sécurisée et à un téléchargement en FTP. Les autres fonctions d’Opera n’ont pas été utilisées pour simplifier l’exemple au maximum.

Il est d’abord facile de voir que les ports utilisés en local sont bien dans la gamme 1024 à 5000 [colonne O], que les ports distants [colonne P] sont 21 (le port FTP-control), 80 (le port HTTP), 443 (le port HTTPS) de même qu’un port distant 57814 qui n’est ni un des ports “bien connus” (de 1 à 1023) ni dans la gamme 1024 à 5000 et qu’on peut facilement reconnaître ici comme étant le port utilisé en FTP mode passif. De plus la colonne N nous indique que le TCP est le seul protocole utilisé.

Ce qui nous donne donc les règles de tests “phase 2″ suivantes:

a) TCP ports locaux de 1024 à 5000 et ports distants égale ou 80, 443

b) TCP ports locaux 1024 à 5000 et port distant Égal 21

c) TCP ports locaux 1024 à 5000 et ports distants Entre A-B 1024 à 65535

d) TCP/UDP tous les ports locaux et distants (notre règle Test du début qui devient en quelque sorte un “garbage collector” au cas ou quelque chose nous aurait échappé…)

Par la suite, au cours de la “phase 2″ on pourra utiliser d’autres fonctions d’Opera qui utiliseront soit les 2 premières règles soit la troisième ou quatrième. Notez que l’adresse IP de votre ordinateur, adresse IP en source ou destination est un bon point de repère pour s’orienter et comprendre qui fait quoi.

Il suffit alors de recommencer la procédure à nouveau pour affiner les règles.

2 Remarques pour cet exemple particulier :

1- Pour éviter de multiplier les phases de test (et même en simplifier la deuxième) il est évidemment préférable d’utiliser toutes les fonctions du programmes pour faire ressortir dès la première phase quels sont les ports distants utilisés ou les gammes de ports, avec quel(s) protocole(s), et ainsi de suite.

2- De même, il serait préférable de ne pas utiliser la 3 ième règle, parce que trop générale, et de se fier uniquement à la 4 ième pour les paquets restants c’est à dire correspondants à des ports distants “bien connus” pour rafiner nos règles de la “phase 1″. Dans l’exemple donné, s’il n’y avait pas d’autres fonctions dans Opera (courrier, IRC, etc) nous aurions déjà dès la première phase toutes les règles dont nous avons besoin. Les données récoltées ici correspondant dès le premier coup d’oeil à celles que nous avons déjà vu dans l’article “Règles pour Look’n'Stop - partie 4″, 4- Règles pour les applications les plus courantes…

La meilleure façon de se faire la main avec cette méthode est d’utiliser d’abord un programme tel qu’un navigateur dont on connait d’avance les fonctions et les règles de façon à s’orienter plus facilement avec le format brut du journal et son traitement avec un chiffrier. Par la suite il sera plus facile de s’attaquer à de plus gros morceaux. C’est ce que nous verrons dans le prochain article portant sur Look’n'Stop.

À bientôt.

;-)

Articles précédents »

Publié sur WordPress.