Règles Firewall pfSense (Multi LAN)

Dans cet article nous allons mettre en place des règles Firewall sous pfSense pour que les différents LAN (sous-réseaux) communiquent ensemble. Le firewall pfSense est déjà installé et configuré avec 3 interfaces LAN (4 NICS avec le WAN).

Machine virtuelle nécessaire :

Schéma réseau

Passons donc à la mise en place des règles pour chaque réseau. Je reprends le schéma des cartes réseau de mon environnement pfSense :

em0    = WAN                = 192.168.1.0/24     = Le réseau de ma machine hôte
em1    = LAN-Serveurs       = 172.16.1.1/18      = Le réseau LAN pour les serveurs
em2    = LAN-Users          = 172.16.64.1/18     = Le réseau LAN pour les Utilisateurs
em3    = LAN-DMZ            = 172.16.128.1/18    = Le réseau pour la DMZ

J’ai donc 3 sous-réseaux LAN isolés. Le but est donc de faire en sorte que les 3 LAN puissent communiquer ensemble. Depuis le réseau LAN (LAN-Serveurs), vous pouvez normalement joindre les autres LAN sans problème, grâce à la règle par défaut créée par pfSense sinon, on n’aurait pas accès à l’interface Web.

Il suffit donc de créer les mêmes règles sur les autres LAN.

Attention, ici on ouvre la porte entièrement, pour plus de sécurité, il faut bien sûr cibler par port/protocole… Je suis dans un environnement de test.

Sans rien configurer, voilà ce que ça donne :

LAN-Serveurs  ➡   LAN-Users     : ping ✅Ok
LAN-Serveurs  ➡   LAN-DMZ       : ping ✅Ok
LAN-Users     ➡   LAN-Serveurs  : ping ⛔Nok
LAN-Users     ➡   LAN-DMZ       : ping ⛔Nok
LAN-DMZ       ➡   LAN-Users     : ping ⛔Nok
LAN-DMZ       ➡   LAN-Serveurs  : ping ⛔Nok

Test Echo Request (Avant)

Faisons un ping entre les interfaces pour vérifier.

LAN-Serveurs  vers  LAN-Users : ping 172.16.64.1

Envoi d’une requête ‘Ping’ 172.16.64.1 avec 32 octets de données :
Réponse de 172.16.64.1 : octets=32 temps<1ms TTL=64
Réponse de 172.16.64.1 : octets=32 temps<1ms TTL=64
Réponse de 172.16.64.1 : octets=32 temps<1ms TTL=64
Réponse de 172.16.64.1 : octets=32 temps<1ms TTL=64

LAN-Serveurs  vers  LAN-DMZ : ping 172.16.128.1

Envoi d’une requête ‘Ping’ 172.16.128.1 avec 32 octets de données :
Réponse de 172.16.128.1 : octets=32 temps<1ms TTL=64
Réponse de 172.16.128.1 : octets=32 temps<1ms TTL=64
Réponse de 172.16.128.1 : octets=32 temps<1ms TTL=64
Réponse de 172.16.128.1 : octets=32 temps<1ms TTL=64

LAN-Users  vers  LAN-Serveursping 172.16.1.1

Envoi d’une requête ‘Ping’ 172.16.1.1 avec 32 octets de données :
Délai d’attente de la demande dépassé.
Délai d’attente de la demande dépassé.
Délai d’attente de la demande dépassé.
Délai d’attente de la demande dépassé.

LAN-Users  vers  LAN-DMZ : ping 172.16.128.1

Envoi d’une requête ‘Ping’ 172.16.128.1 avec 32 octets de données :
Délai d’attente de la demande dépassé.
Délai d’attente de la demande dépassé.
Délai d’attente de la demande dépassé.
Délai d’attente de la demande dépassé.

LAN-DMZ  vers  LAN-Serveurs : ping 172.16.1.1

Envoi d’une requête ‘Ping’ 172.16.1.1 avec 32 octets de données :
Délai d’attente de la demande dépassé.
Délai d’attente de la demande dépassé.
Délai d’attente de la demande dépassé.
Délai d’attente de la demande dépassé.

LAN-DMZ  vers LAN-Users : ping 172.16.64.1

Envoi d’une requête ‘Ping’ 172.16.64.1 avec 32 octets de données :
Délai d’attente de la demande dépassé.
Délai d’attente de la demande dépassé.
Délai d’attente de la demande dépassé.
Délai d’attente de la demande dépassé.

Ajout des règles

Connectez-vous à l’interface pfSense. l’utilisateur et le mot de passe par défaut : admin – pfsense.

  • Allez dans le menu Pare-feu puis Règles.
  • Sélectionnez l’inteface LAN.
  • On peut voir les règles déjà en place, il faut créer ces mêmes règles pour l’interface USERS et DMZ :

Cliquez sur USERS et cliquez sur le premier bouton Ajouter :

  • Règle
    • Action : Autoriser (Pass)
    • Interface : USERS
    • Famille d’adresse : IPv4
    • Protocole : TCP
    • Sous-types ICMP : Tout (any)
  • Source
    • Source : USERS net 
    • Plage de port source : Tout / Tout
  • Destination
    • Destination : Tout
    • Plage de port source : Tout / Tout
  • Options additionnelles
    • Description : Allow LAN-Users to any
  • Enregistrer

Cliquez sur le deuxième bouton Ajouter :

  • Règle
    • Action : Autoriser (Pass)
    • Interface : USERS
    • Famille d’adresse : IPv6
    • Protocole : TCP
    • Sous-types ICMP : Tout (any)
  • Source
    • Source : USERS net 
    • Plage de port source : Tout / Tout
  • Destination
    • Destination : Tout
    • Plage de port source : Tout / Tout
  • Options additionnelles
    • Description : Allow LAN-Users to any
  • Enregistrer

Cliquez sur le bouton : Appliquer les modifications


Cliquez sur DMZ, cliquez sur le premier bouton Ajouter :

  • Règle
    • Action : Autoriser (Pass)
    • Interface : DMZ
    • Famille d’adresse : IPv4
    • Protocole : TCP
    • Sous-types ICMP : Tout (any)
  • Source
    • Source : DMZ net
    • Plage de port source : Tout / Tout
  • Destination
    • Destination : Tout
    • Plage de port source : Tout / Tout
  • Options additionnelles
    • Description : Allow LAN-DMZ to any
  • Enregistrer

Cliquez sur le deuxième bouton Ajouter :

  • Règle
    • Action : Autoriser (Pass)
    • Interface : DMZ
    • Famille d’adresse : IPv6
    • Protocole : TCP
    • Sous-types ICMP : Tout (any)
  • Source
    • Source : DMZ net
    • Plage de port source : Tout / Tout
  • Destination
    • Destination : Tout
    • Plage de port source : Tout / Tout
  • Options additionnelles
    • Description : Allow LAN-DMZ to any
  • Enregistrer

Cliquez sur le bouton : Appliquer les modifications

Test Echo Request (Après)

Mes sous-réseaux LAN communiquent ensemble. Pensez à désactiver le pare-feu Windows ou rajouter des règles pour autoriser la communication, dans mon cas, il est désactivé.

LAN-Users  –>  LAN-DMZ : ping 172.16.128.1

Vous pouvez également faire la même chose pour le réseau WAN afin d’autoriser votre machine hôte si nécessaire. Les postes utilisateurs peuvent désormais contacter le réseau LAN-Serveurs et la DMZ.

Bonne journée et à bientôt.

10 Responses

  1. SARAGOZA philippe dit :

    bonjour, j’ai pfsense avec 8 Vlan et je souhaiterai que 1 Vlan ne puisse communiquer qu’avec l’interface wan et pas avec les autres. j’ai fait un essai avec » VlanNet8 TCP 443 vers WanNet » mais ca ne marche pas j’ai même essayé  » VlanNet8 TCP 443 vers WanAdress » même résultat. pouvez vous m’aider? merci cordialement

    • sysadmin dit :

      Bonjour,
      Les VLANs sont isolés par défaut et ne devrait pas communiquer entre eux à moins de mettre des règles firewall pour les autoriser.
      Ce n’est pas le cas de ton côté ?

      • SARAGOZA philippe dit :

        bonjour, oui ils sont isolés, mon problème est que le Vlan8 doit aller sur internet et que sur internet la seule solution que j’ai trouvé pour que ca marche est « VlanNet8 TCP 443 vers * » donc vers tout, le Vlan8 me ser pour les appareils connectés (aspirateur, lave linge, player 4k) pour mes 7 autre Vlan ils passent par le proxy donc la cible de destination est bien identifié port 3128 et ip passerelle du Vlan.

        • sysadmin dit :

          D’accord, je comprends.
          Tu peux essayer les alias comme expliqué ici : https://forum.netgate.com/topic/57483/permit-from-vlan-subnet-to-wan-only

          Tu crées un alias qui pointe sur les autres VLANs

          Sur ton VLAN qui doit accéder à Internet seul :
          Tu lui rajoutes 2 régles firewall:
          – Une règle qui bloque tout le traffic vers les autres vlans, donc l’alias.
          – Une règle qui autorise le traffic WAN.
          Tiens moi au courant.
          Désolé, je ne suis pas chez moi pour tester de mon côté.

          • SARAGOZA philippe dit :

            ok mais la y a un truc que je comprends pas.. (je précise que le proxy n ‘est pas actif sur ce Vlan)

            -autorisé vers la passerelle:
            NTP et DNS
            -puis interdit:
            ip* IPV4/IPV6 ******** (ma règle interdit) que j’historise
            ça donne dans les logs:
            ip aspirateur VlanNet8 TCP 443 vers (un serveur sur internet) block……normal (Vlan étanche)

            -puis je rajoute, après ma règle NTP et DNS:

            test 1
            ip aspirateur VlanNet8 TCP 443 vers WanNet (marche pas)
            test 2
            ip aspirateur VlanNet8 TCP 443 vers WanAderss (marche pas)

            je teste avec l’alias ce soir mais si j’interdis le trafic en 443 de mon Vlan8 vers le reste (alias), et après je fais « VlanNet8 TCP 443 vers * » je pense que ma 2 emme règle court-circuite ma première.

          • sysadmin dit :

            Tu autorise ce qu’il te faut ensuite vers les autres VLAN.
            Mais tu laisses la règle qui bloque tous le trafic vers l’alias.

            Si ça ne marche pas, il faut essayer avec le NAT pour autoriser le VLAN vers le WAN.
            Tiens moi au courant.

          • SARAGOZA philippe dit :

            bonjour,

            bon après test cela fonctionne…
            donc en premier:
            -ma règle interdiction vers tous les Vlan. (alias)
            -en 2 ma règle 443 vers ***
            -en 3 la règle ip* IPV4/IPV6 ******** (ma règle interdit)

            merci pour votre aide
            cordialement

          • sysadmin dit :

            Merci pour le feedback.
            J’ai perdu un peu la main sur pfSense.
            Faut que je refasse mon labs.

  2. Oui Barthélémy dit :

    Bonjours, moi j’ai créé mon server Radius et j’ai suivis le même processus. J’arrive à me connecter avec ma machine, mais lorsque je veux m’authentifier sur le portail captif, un message d’erreur : coule not connecte to authentification server. J’ai besoin d’aide parce que j’ai tout essayé à mon niveau.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *