Firewall règles



  • Bonsoir,

    Je me pose une question à propos du firewall dans pfSense.

    Imaginons j'ai deux interfaces avec deux réseaux différents. Réseau A et réseau B.

    Dans le firewall du réseau A, je bloque tout. Dans le firewall du réseau B j'autorise tout.
    Si depuis le réseau B je tente de pinguer un device dans le réseau A, j'ai bien une réponse

    Comment ça se fait ? La logique voudrait que pour avoir une réponse je devrais créer une règle dans le firewall du réseau A pour autoriser l'envoi d'une réponse vers le réseau B non ?

    Il y a quelque chose qui m'échappe :-)



  • Dans le firewall du réseau A, je bloque tout. Dans le firewall du réseau B j'autorise tout.

    Vous voulez parler d'interfaces sans doute ? Celle connectée à réseau A et celle connectée à réseau B ?

    Comment ça se fait ? La logique voudrait que pour avoir une réponse je devrais créer une règle dans le firewall du réseau A pour autoriser l'envoi d'une réponse vers le réseau B non ?

    Non. Le fonctionnement de Pfsense et des protocoles est mal compris. Un détour par le site de Christian Caleca s'impose. Ensuite il faut avoir en tête que pfsense filtre le trafic qui vient du réseau et va vers l'interface (celle raccordée à ce réseau) de Pfsense. Il ne filtre que le trafic entrant sur l'interface.



  • Bonjour,

    @ccnet:

    Non. Le fonctionnement de Pfsense et des protocoles est mal compris. Un détour par le site de Christian Caleca s'impose. Ensuite il faut avoir en tête que pfsense filtre le trafic qui vient du réseau et va vers l'interface (celle raccordée à ce réseau) de Pfsense. Il ne filtre que le trafic entrant sur l'interface.

    Oui, réseau A raccordé à l'interface A, réseau B raccordé à l'interface B.

    Si je comprends bien ce que vous dites, pfSense devrait bloquer le reply du ping du réseau A vers le réseau B vu que sur l'interface du réseau A je bloque tout.

    Envoi du Ping :
    Réseau B ==> Interface B ==> Interface A ==> Réseau A

    Réponse du Ping :
    Réseau A ==> Interface A (bloque tout ET DONC bloque la réponse du ping) ==> Interface B ==> Réseau B

    Lorsque la machine du réseau A reçoit un ping et qu'elle veut répondre à ce ping, le firewall de l'interface A devrait bloquer la réponse non ?



  • pfSense est un firewall dit stateful: http://lmgtfy.com/?q=pare-feu+stateful



  • @psylo:

    pfSense est un firewall dit stateful: http://lmgtfy.com/?q=pare-feu+stateful

    Merci pour ta réponse.

    "Un dispositif pare-feu de type « stateful inspection » est ainsi capable d'assurer un suivi des échanges, c'est-à-dire de tenir compte de l'état des anciens paquets pour appliquer les règles de filtrage. De cette manière, à partir du moment où une machine autorisée initie une connexion à une machine située de l'autre côté du pare-feu; l'ensemble des paquets transitant dans le cadre de cette connexion seront implicitement acceptés par le pare-feu"

    ==> Je comprends le principe, mais si sur mon interface A je fait justement une règle qui bloque tout : ce n'est pas normal qu'il réponde… Même si sur l'interface B je l'autorise vers tout. Il est donc impossible de bloquer complètement tout aller et venue sur une interface ?

    Imaginons ma maison est fermée à clé. Ce n'est pas parce que celle du voisin elle n'est pas fermée à clé qu'elle à le droit de rentré dans maison qui elle est fermée

    Y a un truc que je ne trouve pas logique. Ou alors je n'ai pas bien compris un truc..



  • @fabienfs:

    @psylo:

    pfSense est un firewall dit stateful: http://lmgtfy.com/?q=pare-feu+stateful

    Merci pour ta réponse.

    "Un dispositif pare-feu de type « stateful inspection » est ainsi capable d'assurer un suivi des échanges, c'est-à-dire de tenir compte de l'état des anciens paquets pour appliquer les règles de filtrage. De cette manière, à partir du moment où une machine autorisée initie une connexion à une machine située de l'autre côté du pare-feu; l'ensemble des paquets transitant dans le cadre de cette connexion seront implicitement acceptés par le pare-feu"

    ==> Je comprends le principe, mais si sur mon interface A je fait justement une règle qui bloque tout : ce n'est pas normal qu'il réponde… Même si sur l'interface B je l'autorise vers tout. Il est donc impossible de bloquer complètement tout aller et venue sur une interface ?

    Imaginons ma maison est fermée à clé. Ce n'est pas parce que celle du voisin elle n'est pas fermée à clé qu'elle à le droit de rentré dans maison qui elle est fermée

    Y a un truc que je ne trouve pas logique. Ou alors je n'ai pas bien compris un truc..

    Réponse 2…

    Votre analogie avec 2 maisons est à oublier complètement... Ou tout du moins à repenser complètement. Dans le cas d'un firewall stateful, on est plutôt dans l'analogie suivante:

    • votre maison est composée de plusieurs portes protégées par des clés (respectivement les interfaces & les règles de filtrage du firewall)

    • toutes les portes sont tout le temps fermées à clé (règle de filtrage block_all implicite à la fin des règles explicites)

    • vous possédez une clé passe-partout qui déverrouille toutes les portes (règle permettant votre machine d'accéder à tout).

    • il est donc normal que cette même clé, qui vous permet d'ouvrir toutes les portes dans un sens, vous permette de les déverrouiller dans l'autre sens aussi, non?

    • Et la maison du voisin??? Ah bah elle correspond à un autre pare-feu

    Bon, vu qu'ici, vous permettez votre réseau B d'accéder au réseau A, il est donc normal que pour une connexion initiée au départ du réseau B, le trafic retour soit autorisé… En d'autres mots, aucune des règles configurées sur l'interface A n'est prise en compte pour un trafic retour d'une connexion existante. Par contre, si vous essayez d'initier une connexion à partir du réseau A, tout sera bloqué... Et si vous voulez que le réseau B ne communique pas avec le A, mettez une règle bloquant ces flux avant la règle permettant l'accès à tout...

    Utilité de la chose: simplifier grandement l'administration des règles d'accès en évitant à l'administrateur de devoir systématiquement penser à permettre le trafic retour... Et pour avoir travailler sur des devices stateless (switches Cisco avec l'IOS kifaupa(TM)), je vous garantis que le stateful, c'est un grand bonheur...



  • @psylo:

    @fabienfs:

    @psylo:

    pfSense est un firewall dit stateful: http://lmgtfy.com/?q=pare-feu+stateful

    Merci pour ta réponse.

    "Un dispositif pare-feu de type « stateful inspection » est ainsi capable d'assurer un suivi des échanges, c'est-à-dire de tenir compte de l'état des anciens paquets pour appliquer les règles de filtrage. De cette manière, à partir du moment où une machine autorisée initie une connexion à une machine située de l'autre côté du pare-feu; l'ensemble des paquets transitant dans le cadre de cette connexion seront implicitement acceptés par le pare-feu"

    ==> Je comprends le principe, mais si sur mon interface A je fait justement une règle qui bloque tout : ce n'est pas normal qu'il réponde… Même si sur l'interface B je l'autorise vers tout. Il est donc impossible de bloquer complètement tout aller et venue sur une interface ?

    Imaginons ma maison est fermée à clé. Ce n'est pas parce que celle du voisin elle n'est pas fermée à clé qu'elle à le droit de rentré dans maison qui elle est fermée

    Y a un truc que je ne trouve pas logique. Ou alors je n'ai pas bien compris un truc..

    Réponse 2…

    Votre analogie avec 2 maisons est à oublier complètement... Ou tout du moins à repenser complètement. Dans le cas d'un firewall stateful, on est plutôt dans l'analogie suivante:

    • votre maison est composée de plusieurs portes protégées par des clés (respectivement les interfaces & les règles de filtrage du firewall)

    • toutes les portes sont tout le temps fermées à clé (règle de filtrage block_all implicite à la fin des règles explicites)

    • vous possédez une clé passe-partout qui déverrouille toutes les portes (règle permettant votre machine d'accéder à tout).

    • il est donc normal que cette même clé, qui vous permet d'ouvrir toutes les portes dans un sens, vous permette de les déverrouiller dans l'autre sens aussi, non?

    • Et la maison du voisin??? Ah bah elle correspond à un autre pare-feu

    Bon, vu qu'ici, vous permettez votre réseau B d'accéder au réseau A, il est donc normal que pour une connexion initiée au départ du réseau B, le trafic retour soit autorisé… En d'autres mots, aucune des règles configurées sur l'interface A n'est prise en compte pour un trafic retour d'une connexion existante. Par contre, si vous essayez d'initier une connexion à partir du réseau A, tout sera bloqué... Et si vous voulez que le réseau B ne communique pas avec le A, mettez une règle bloquant ces flux avant la règle permettant l'accès à tout...

    Utilité de la chose: simplifier grandement l'administration des règles d'accès en évitant à l'administrateur de devoir systématiquement penser à permettre le trafic retour... Et pour avoir travailler sur des devices stateless (switches Cisco avec l'IOS kifaupa(TM)), je vous garantis que le stateful, c'est un grand bonheur...

    Ok je vois, et on est d'accord que c'est vachement pratique pour un admin réseau

    Par contre, je reviens sur une question tout bête : est-il possible de bloquer complètement l'accès à une interface quoi qu'il arrive ? Rendre vraiment un réseau injoignable ? Impossible ?



  • @fabienfs:

    Ok je vois, et on est d'accord que c'est vachement pratique pour un admin réseau

    Par contre, je reviens sur une question tout bête : est-il possible de bloquer complètement l'accès à une interface quoi qu'il arrive ? Rendre vraiment un réseau injoignable ? Impossible ?

    Dernière phrase du 2ème paragraphe: Et si vous voulez que le réseau B ne communique pas avec le A, mettez une règle bloquant ces flux avant la règle permettant l'accès à tout…

    Ceci en supposant que ce réseau doit rester connecter au pfSense…



  • @psylo:

    @fabienfs:

    Ok je vois, et on est d'accord que c'est vachement pratique pour un admin réseau

    Par contre, je reviens sur une question tout bête : est-il possible de bloquer complètement l'accès à une interface quoi qu'il arrive ? Rendre vraiment un réseau injoignable ? Impossible ?

    Dernière phrase du 2ème paragraphe: Et si vous voulez que le réseau B ne communique pas avec le A, mettez une règle bloquant ces flux avant la règle permettant l'accès à tout…

    Ceci en supposant que ce réseau doit rester connecter au pfSense…

    Si je veux qu'une interface/réseau soit inaccessible de toutes mes autres interfaces, je suis obligé de créer la règle d'interdiction dans le firewall de toutes mes autres interfaces sauf de celle que je veux interdire à tout alors ? C'est illogique…



  • @fabienfs:

    Si je veux qu'une interface/réseau soit inaccessible de toutes mes autres interfaces, je suis obligé de créer la règle d'interdiction dans le firewall de toutes mes autres interfaces sauf de celle que je veux interdire à tout alors ? C'est illogique…

    La phrase n'est pas très française et est complètement incompréhensible…



  • @psylo:

    @fabienfs:

    Si je veux qu'une interface/réseau soit inaccessible de toutes mes autres interfaces, je suis obligé de créer la règle d'interdiction dans le firewall de toutes mes autres interfaces sauf de celle que je veux interdire à tout alors ? C'est illogique…

    La phrase n'est pas très française et est complètement incompréhensible…

    Imaginons j'ai 4 réseaux sur 4 interfaces.

    A, B, C et D

    Je veux protéger mon réseau A et bloquer TOUTE communication de ce réseau avec les autres réseaux.

    En créant une règle bloquant tout dans le firewall de l'interface A, tu me dis que rien ne sortira de l'interface. Par contre si un autre réseau qui a accès vers tout tente d'accéder au réseau A, alors la il pourra passer par l'interface A malgré que j'ai créer une règle dans le firewall de A bloquant tout ?

    Pour bloquer complètement mon réseau A en sortie ET en entrée, je suis alors obligé de créer une règle sur B, C et D interdisant l'accès vers A ?
    Impossible de créer une seule et unique règle pour ça dans le firewall de A ?



  • Si avec une règle bloquant Any:Any –> Réseau_A:Any...

    Mais, comme il est conseillé de toujours bloquer les trafics le plus proches de la source de ce trafic (afin de décharger le firewall des traitements de paquets qui seront bloqués plus loin), il vaut mieux créer une règle sur les autres interfaces...

    Maintenant, si je ne me trompe, il est aussi possible d'utiliser une "floating rule": On the Firewall Rules page, there will be a tab for each interface, plus a tab for each active VPN type (IPsec, OpenVPN, PPTP), and a tab for "Floating Rules" which contains rules that apply to multiple interfaces, to avoid repetition.

    Autre chose, si c'est pour connecter un réseau à un firewall sans lui donner un seul accès et que rien ne puisse y accéder, je ne vois pas l'utilité de le connecter…



  • Dernière remarque à propos de "l'illogique". Mettez-vous à la place du firewall: si vous donnez accès à tout pour un réseau, le firewall donnera accès à TOUT même si un des réseaux ne peut lui accéder à rien… Vu que le trafic est initié à partir d'un réseau ayant accès à tout, le firewall donne accès... Ce n'est donc pas illogique...



  • J'ai essayé le ANY:ANY et Réseau_A:ANY :

    Mais j'ai quand même des réponses de ce réseau A. Je continue à trouver ça illogique ;D



  • Je suppose que la capture d'écran que vous avez mise concerne des règles "floating". N'ayant jamais utilisé ce type de règles, je ne sais pas si elles sont appliquées avant ou après les règle propres aux interfaces.


Log in to reply