Aucun résumé des modifications
Aucun résumé des modifications
Ligne 1 : Ligne 1 :
<br>
<br>
= <span style="color:#1565c0;">Installation et Configuration pfSense</span> =
= <span style="color:#1b4f72;">Installation et Configuration OpenVPN sur pfSense (Remote Access - LAB Proxmox)</span> =


{| style="width:100%; background:#e3f2fd; border:1px solid #90caf9; padding:15px; border-radius:10px; overflow:hidden;"
{| style="width:100%; background:#d6eaf8; border:1px solid #85c1e9; padding:15px; border-radius:10px; overflow:hidden;"
|
|
<span style="font-size:115%; color:#1565c0;">
<span style="font-size:115%; color:#1b4f72;">
Cette section décrit l'installation et la configuration complète d'un firewall pfSense. <br><br>
Cette section décrit la mise en place d’un serveur VPN OpenVPN en mode Remote Access sur pfSense dans un environnement virtualisé Proxmox. <br><br>
Elle permet de mettre en place une solution de sécurité réseau professionnelle avec gestion multi-zones (WAN, LAN, DMZ, PRI). <br><br>
L’objectif est de permettre à des clients Windows (VM) de se connecter à distance au réseau interne 192.168.60.0/24 de manière sécurisée. <br><br>
Elle inclut également la configuration du DHCP Relay, du NAT et des règles de pare-feu pour sécuriser et gérer le trafic réseau.</span>
Le tunnel VPN repose sur un chiffrement AES-256-GCM avec authentification par certificats et utilisateurs locaux pfSense.
</span>
|}
|}


Ligne 13 : Ligne 14 :


<br>
<br>
= <span style="color:#0d47a1;">1 — Installation de pfSense</span> =
= <span style="color:#1a5276;">Prérequis</span> =


{| style="width:100%; background:#e8eaf6; border:1px solid #9fa8da; padding:12px; border-radius:10px; overflow:hidden;"
{| style="width:100%; background:#e8eaf6; border:1px solid #9fa8da; padding:12px; border-radius:10px; overflow:hidden;"
|
|
<b style="color:#0d47a1;">Création de la machine virtuelle et téléchargement de l'ISO</b>
<b style="color:#1a5276;">Vérification de l'environnement avant configuration</b>
|}
|}
 
== <span style="color:#1976d2;">Téléchargement de l'ISO pfSense</span> ==


Télécharger l'image ISO de pfSense depuis le dépôt officiel :
== <span style="color:#1976d2;">Environnement nécessaire</span> ==
 
<pre>
https://repo.ialab.dsu.edu/pfsense/
</pre>


* pfSense installé et fonctionnel
* VM client Windows
* Réseau LAN : 192.168.60.0/24
* pfSense LAN : 192.168.60.254


 
Accès interface pfSense :
== <span style="color:#1976d2;">Création de la VM pfSense</span> ==
 
Créer une nouvelle machine virtuelle avec l'ISO pfSense téléchargé.
 
Spécifications recommandées :
 
* <b>RAM</b> : 2 Go minimum
* <b>CPU</b> : 2 cœurs minimum
* <b>Disque</b> : 20 Go minimum
* <b>Interfaces réseau</b> : 4 Network Devices (configuration détaillée ci-dessous)
 
 
 
== <span style="color:#1976d2;">Configuration des interfaces réseau (Hardware)</span> ==
 
Dans la section <b>Hardware</b> de votre hyperviseur, créer 4 Network Devices :
 
<b>Interface 1 (net0) - WAN :</b>


<pre>
<pre>
Bridge : vmbr0
https://192.168.60.254
Model : Intel E1000
</pre>
</pre>


<b>Interface 2 (net1) - LAN :</b>
Schéma logique :


<pre>
<pre>
Bridge : vmbrlan
                VM Client VPN
Model : VirtIO (paravirtualized)
                      │
                      ▼
              ┌──────────────┐
              │  pfSense    │
              │ OpenVPN SRV  │
              └──────┬───────┘
                    │
          ┌──────────┴──────────┐
          │                    │
  192.168.60.33        autres VMs LAN
</pre>
</pre>
<b>Interface 3 (net2) - DMZ :</b>
<pre>
Bridge : vmbrdmz
Model : VirtIO (paravirtualized)
</pre>
<b>Interface 4 (net3) - PRI :</b>
<pre>
Bridge : vmbrpri
Model : VirtIO (paravirtualized)
</pre>
Une fois la configuration terminée, démarrer la VM.


<br><br>
<br><br>


= <span style="color:#0d47a1;">2 Configuration des Interfaces pfSense</span> =
= <span style="color:#0d47a1;">1 Création de l’Autorité de Certification (CA)</span> =


{| style="width:100%; background:#e8eaf6; border:1px solid #9fa8da; padding:12px; border-radius:10px; overflow:hidden;"
{| style="width:100%; background:#e8eaf6; border:1px solid #9fa8da; padding:12px;"
|
|
<b style="color:#0d47a1;">Attribution et configuration des interfaces réseau dans pfSense</b>
<b>Création de la CA interne pfSense</b>
|}
|}


== <span style="color:#1976d2;">Assignation des interfaces</span> ==
== <span style="color:#1976d2;">Accès</span> ==


Au démarrage de pfSense, vous accédez à la console en ligne de commande.
<b>System → Certificate Manager → Authorities → Add</b>


Appuyer sur <b>1</b> pour accéder à <b>"Assign Interfaces"</b>.
== <span style="color:#1976d2;">Configuration</span> ==


Instructions d'assignation :
<pre>
Method              : Create an internal Certificate Authority
Descriptive Name    : VPN-CA
Key Length          : 2048
Digest              : SHA256
Lifetime            : 3650
</pre>


* Assigner la <b>première interface</b> au <b>WAN</b>
Common Name :
* Assigner la <b>seconde interface</b> au <b>LAN</b>
* Assigner la <b>troisième interface</b> à <b>OPT1</b> (qui deviendra DMZ)
* Assigner la <b>quatrième interface</b> à <b>OPT2</b> (qui deviendra PRI)


{| style="width:100%; background:#fff3e0; border:1px solid #ffb74d; padding:10px; border-radius:8px; overflow:hidden;"
<pre>
|
VPN-CA
<b style="color:#e65100;">⚠ ATTENTION :</b> L'ordre d'assignation doit correspondre exactement à l'ordre de configuration dans la section Hardware.
</pre>
|}


✔ Save


<br><br>


== <span style="color:#1976d2;">Configuration des adresses IP</span> ==
= <span style="color:#0d47a1;">2 — Création du certificat serveur</span> =


Appuyer sur <b>2</b> pour accéder à <b>"Set Interfaces IP Address"</b>.
<b>System → Certificate Manager → Certificates → Add / Sign</b>
 
Sélectionner chaque interface une par une et effectuer les opérations suivantes :
 
* <b>Refuser</b> l'assignation d'adresse IPv4 par DHCP
* <b>Entrer</b> une adresse IPv4 statique
* <b>Entrer</b> le masque de sous-réseau
* <b>Refuser</b> l'assignation d'adresse IPv6 par DHCP
* <b>Ne rien entrer</b> pour l'IPv6
* <b>Refuser</b> le retour sur HTTP
* <b>Appuyer sur Entrée</b> pour valider
 
Répéter cette procédure pour chaque interface.
 
 
 
== <span style="color:#1976d2;">Résultat attendu de la configuration</span> ==
 
Après configuration, la console pfSense doit afficher :


<pre>
<pre>
┌─────────────────────────────────────────────────────┐
Method              : Create internal certificate
│  WAN (wan)  → em0    → v4: 192.168.20.200/24      │
Descriptive Name    : OpenVPN-Server
│  LAN (lan)  → vtnet0  → v4: 192.168.30.254/24      │
Certificate Authority : VPN-CA
│  DMZ (opt1) → vtnet1  → v4: 192.168.10.254/24      │
Type                : Server Certificate
│  PRI (opt2) → vtnet2  → v4: 192.168.40.254/24      │
Key Length          : 2048
└─────────────────────────────────────────────────────┘
Digest              : SHA256
</pre>
 
Schéma de l'architecture réseau :
 
<pre>
                        Internet
                          │
                          ▼
                    ┌──────────────┐
                    │  pfSense    │
                    │  Firewall    │
                    └──────┬───────┘
                          │
        ┌──────────────────┼──────────────────┐
        │                  │                  │
        ▼                  ▼                  ▼
    ┌───────┐        ┌────────┐        ┌────────┐
    │  LAN  │        │  DMZ  │        │  PRI  │
    │ .30.x │        │ .10.x  │        │ .40.x  │
    └───────┘        └────────┘        └────────┘
</pre>
</pre>


✔ Save


<br><br>
<br><br>


= <span style="color:#0d47a1;">3 — Configuration du Client Windows</span> =
= <span style="color:#145a32;">3 — Configuration OpenVPN (Remote Access)</span> =


{| style="width:100%; background:#e8eaf6; border:1px solid #9fa8da; padding:12px; border-radius:10px; overflow:hidden;"
{| style="width:100%; background:#e8f5e9; border:1px solid #a5d6a7; padding:12px;"
|
|
<b style="color:#0d47a1;">Mise en place d'une VM client pour accéder à l'interface web de pfSense</b>
<b>Configuration du serveur OpenVPN</b>
|}
|}


== <span style="color:#1976d2;">Création de la VM Windows</span> ==
<b>VPN → OpenVPN → Wizards</b>


Créer une machine virtuelle Windows (ou Linux avec interface graphique) pour accéder à l'interface web de pfSense.
== Authentification ==


Configuration réseau de la VM :
<pre>
Local User Access
</pre>


CA :
<pre>
<pre>
Bridge : vmbrlan
VPN-CA
Model : Intel E1000
</pre>
</pre>


Démarrer la VM Windows.
Certificat :
 
 
 
== <span style="color:#1976d2;">Configuration réseau sous Windows</span> ==
 
Ouvrir la fenêtre de configuration des cartes réseau :
 
<pre>
<pre>
ncpa.cpl
OpenVPN-Server
</pre>
</pre>


Sélectionner la carte réseau présente et configurer manuellement l'adresse IP :
---
 
== Paramètres serveur ==


<pre>
<pre>
Adresse IP            : 192.168.30.100
Server Mode  : Remote Access (SSL/TLS)
Masque de sous-réseau : 255.255.255.0
Protocol      : UDP
Passerelle par défaut : 192.168.30.254
Interface    : LAN
Port          : 1194
</pre>
</pre>


---


 
== Cryptographie ==
== <span style="color:#1976d2;">Accès à l'interface web pfSense</span> ==
 
Ouvrir un navigateur web et saisir l'adresse suivante :


<pre>
<pre>
http://192.168.30.254
TLS Authentication  : activé
Encryption          : AES-256-GCM
Auth Digest          : SHA256
</pre>
</pre>


Identifiants de connexion par défaut :
---
 
== Réseau VPN ==


<pre>
<pre>
Nom d'utilisateur : admin
Tunnel Network : 10.8.0.0/24
Mot de passe      : pfsense
Local Network  : 192.168.60.0/24
DNS Server    : 192.168.60.254
</pre>
</pre>


Vous devez accéder à l'interface d'administration web de pfSense.
✔ Finish
 


<br><br>
<br><br>


= <span style="color:#1b5e20;">4 — Configuration Avancée de pfSense</span> =
= <span style="color:#145a32;">4 — Création utilisateur VPN</span> =


{| style="width:100%; background:#e8f5e9; border:1px solid #a5d6a7; padding:12px; border-radius:10px; overflow:hidden;"
<b>System → User Manager Add</b>
|
<b style="color:#1b5e20;">Configuration de la passerelle WAN, du DHCP Relay, du NAT et des règles de pare-feu</b>
|}
 
== <span style="color:#2e7d32;">Configuration de la passerelle WAN</span> ==
 
Dans l'interface web de pfSense, configurer la passerelle de l'interface WAN pour permettre la connexion à Internet.
 
Navigation :
 
<b>System → Routing Gateways</b>
 
Configuration de la gateway WAN :


<pre>
<pre>
Gateway IP : 192.168.20.254
Username : vpnuser
Password : sécurisé
</pre>
</pre>


Sauvegarder et appliquer les changements.
✔ Cocher :
 
 
 
== <span style="color:#2e7d32;">Configuration du DHCP Relay</span> ==
 
Le DHCP Relay permet de transférer les requêtes DHCP vers un serveur DHCP central.
 
Navigation :
 
<b>Services → DHCP Relay</b>
 
Configuration :
 
* <b>Activer</b> le DHCP Relay
* <b>Sélectionner</b> toutes les interfaces où le DHCP Relay sera utilisé
* Cliquer sur <b>"Add upstream server"</b>
* <b>Entrer l'adresse IP</b> de votre serveur DHCP
 
Sauvegarder et appliquer les changements.
 
Schéma du DHCP Relay :


<pre>
<pre>
┌─────────────┐      Requête DHCP        ┌──────────────┐
Click to create a user certificate
│  Client    │ ─────────────────────────→ │  pfSense    │
│ (LAN/DMZ)  │                            │ DHCP Relay  │
└─────────────┘                            └──────┬───────┘
                                                  │
                                    Transfert    │
                                                  ▼
                                          ┌──────────────┐
                                          │ Serveur DHCP │
                                          │  Central    │
                                          └──────────────┘
</pre>
</pre>


 
CA :
 
== <span style="color:#2e7d32;">Configuration du NAT (Network Address Translation)</span> ==
 
Le NAT permet aux machines du réseau interne d'accéder à Internet en masquant leurs adresses IP privées.
 
Navigation :
 
<b>Firewall → NAT → Outbound</b>
 
Configuration :
 
* Laisser le mode en <b>"Automatic outbound NAT"</b>
* Sauvegarder et appliquer les changements
 
Des règles NAT seront automatiquement créées pour chaque interface interne.
 
Schéma du NAT :
 
<pre>
<pre>
┌─────────────────┐                  ┌─────────────────┐
VPN-CA
│  Réseau Interne │                  │    Internet    │
│  192.168.30.x  │  ───────NAT────→  │  IP Publique    │
│  192.168.10.x  │                  │                │
│  192.168.40.x  │                  │                │
└─────────────────┘                  └─────────────────┘
</pre>
</pre>


✔ Save


<br><br>


== <span style="color:#2e7d32;">Configuration des règles de pare-feu</span> ==
= <span style="color:#7d6608;">5 — Export client OpenVPN</span> =


Les règles de pare-feu permettent de contrôler le trafic réseau entre les différentes zones.
Installer :


Navigation :
<b>openvpn-client-export</b>


<b>Firewall → Rules</b>
Puis :


Exemple de règle pour autoriser le ping (ICMP) :
<b>VPN → OpenVPN → Client Export</b>


Configuration d'une règle ICMP :
Télécharger :


<pre>
<pre>
Action        : Pass
Windows Installer (.exe)
Interface    : LAN / DMZ / PRI (selon besoin)
Protocol      : ICMP
ICMP Type    : Echo Request
Source        : LAN net / DMZ net / PRI net
Destination  : Any
Description  : Autoriser ping depuis [interface]
</pre>
</pre>


{| style="width:100%; background:#fff3e0; border:1px solid #ffb74d; padding:10px; border-radius:8px; overflow:hidden;"
<br><br>
|
 
<b style="color:#e65100;">⚠ IMPORTANT :</b> Les règles de pare-feu doivent être configurées interface par interface (LAN, DMZ, PRI).
= <span style="color:#4a235a;">6 — Firewall pfSense</span> =
|}


Schéma des règles de pare-feu :
<b>Firewall → Rules → OpenVPN</b>


<pre>
<pre>
┌─────────────────────────────────────────────────────┐
Action      : Pass
│                  pfSense Firewall                  │
Source      : OpenVPN net
├─────────────────────────────────────────────────────┤
Destination : LAN net
│                                                    │
Protocol   : any
│  LAN Rules    : ✓ Ping  ✓ HTTP  ✓ HTTPS            │
│  DMZ Rules    : ✓ Ping  ✓ HTTP  ✓ HTTPS            │
│  PRI Rules    : ✓ Ping  ✗ Accès limité            │
│  WAN Rules   : ✗ Bloqué par défaut                │
│                                                    │
└─────────────────────────────────────────────────────┘
</pre>
</pre>
Sauvegarder et appliquer les changements après chaque création de règle.


<br><br>
<br><br>


= <span style="color:#4a148c;">Vérification et Tests</span> =
= <span style="color:#1b2631;">7 — Client VPN (VM Windows)</span> =


{| style="width:100%; background:#f3e5f5; border:1px solid #ce93d8; padding:12px; border-radius:10px; overflow:hidden;"
Installer :
|
<b style="color:#4a148c;">Vérification du bon fonctionnement de pfSense</b>
|}


== <span style="color:#6a1b9a;">Test de connectivité</span> ==
:contentReference[oaicite:0]{index=0}


Depuis une machine cliente (LAN, DMZ ou PRI), vérifier :
Importer le fichier .ovpn


* <b>Connectivité locale</b> : Ping vers la passerelle pfSense
Connexion :


<pre>
<pre>
ping 192.168.30.254
User    : vpnuser
Password : celui défini dans pfSense
</pre>
</pre>


* <b>Connectivité Internet</b> : Ping vers un serveur externe
<br><br>
 
= <span style="color:#1b2631;">8 — Tests de fonctionnement</span> =
 
Depuis la VM client :


<pre>
<pre>
ping 8.8.8.8
ping 192.168.60.254
ping 192.168.60.33
</pre>
</pre>


* <b>Résolution DNS</b> : Ping vers un nom de domaine
Vérifier IP VPN :


<pre>
<pre>
ping google.com
10.8.0.x
</pre>
</pre>


<br><br>


= <span style="color:#1e8449;">Résultat attendu</span> =


== <span style="color:#6a1b9a;">Vérification des services</span> ==
✔ Connexion VPN établie 
 
✔ IP tunnel 10.8.0.x attribuée 
Vérifier que les services suivants fonctionnent correctement :
✔ Accès réseau 192.168.60.0/24 
 
✔ Accès aux VM internes Proxmox 
* ✓ <b>Interface web</b> accessible depuis le réseau LAN
* ✓ <b>DHCP Relay</b> attribue correctement les adresses IP
* ✓ <b>NAT</b> permet l'accès à Internet
* ✓ <b>Règles de pare-feu</b> autorisent/bloquent le trafic selon la configuration
 


<br><br>
<br><br>


= <span style="color:#4a148c;">Remarques Finales</span> =
= <span style="color:#1b4f72;">Conclusion</span> =


{| style="width:100%; background:#f3e5f5; border:1px solid #ce93d8; padding:12px; border-radius:10px; overflow:hidden;"
La solution met en place un VPN Remote Access SSL/TLS sur pfSense dans un environnement Proxmox, permettant un accès sécurisé aux machines internes via authentification utilisateur et certificats.
|
Cette configuration pfSense remplace efficacement un firewall iptables traditionnel en offrant une interface graphique intuitive et des fonctionnalités avancées de sécurité réseau. <br><br>
Le système est maintenant opérationnel avec une architecture multi-zones sécurisée (WAN, LAN, DMZ, PRI). <br><br>
N'oubliez pas de sauvegarder régulièrement votre configuration pfSense via <b>Diagnostics → Backup & Restore</b>.
|}

Version du 20 avril 2026 à 22:27


Installation et Configuration OpenVPN sur pfSense (Remote Access - LAB Proxmox)

Cette section décrit la mise en place d’un serveur VPN OpenVPN en mode Remote Access sur pfSense dans un environnement virtualisé Proxmox.

L’objectif est de permettre à des clients Windows (VM) de se connecter à distance au réseau interne 192.168.60.0/24 de manière sécurisée.

Le tunnel VPN repose sur un chiffrement AES-256-GCM avec authentification par certificats et utilisateurs locaux pfSense.


Prérequis

Vérification de l'environnement avant configuration

Environnement nécessaire

  • pfSense installé et fonctionnel
  • VM client Windows
  • Réseau LAN : 192.168.60.0/24
  • pfSense LAN : 192.168.60.254

Accès interface pfSense :

https://192.168.60.254

Schéma logique :

                VM Client VPN
                      │
                      ▼
              ┌──────────────┐
              │   pfSense    │
              │ OpenVPN SRV  │
              └──────┬───────┘
                     │
          ┌──────────┴──────────┐
          │                     │
   192.168.60.33        autres VMs LAN



1 — Création de l’Autorité de Certification (CA)

Création de la CA interne pfSense

Accès

System → Certificate Manager → Authorities → Add

Configuration

Method              : Create an internal Certificate Authority
Descriptive Name    : VPN-CA
Key Length          : 2048
Digest              : SHA256
Lifetime            : 3650

Common Name :

VPN-CA

✔ Save



2 — Création du certificat serveur

System → Certificate Manager → Certificates → Add / Sign

Method              : Create internal certificate
Descriptive Name    : OpenVPN-Server
Certificate Authority : VPN-CA
Type                : Server Certificate
Key Length          : 2048
Digest              : SHA256

✔ Save



3 — Configuration OpenVPN (Remote Access)

Configuration du serveur OpenVPN

VPN → OpenVPN → Wizards

Authentification

Local User Access

CA :

VPN-CA

Certificat :

OpenVPN-Server

---

Paramètres serveur

Server Mode   : Remote Access (SSL/TLS)
Protocol      : UDP
Interface     : LAN
Port          : 1194

---

Cryptographie

TLS Authentication   : activé
Encryption           : AES-256-GCM
Auth Digest          : SHA256

---

Réseau VPN

Tunnel Network : 10.8.0.0/24
Local Network  : 192.168.60.0/24
DNS Server     : 192.168.60.254

✔ Finish



4 — Création utilisateur VPN

System → User Manager → Add

Username : vpnuser
Password : sécurisé

✔ Cocher :

Click to create a user certificate

CA :

VPN-CA

✔ Save



5 — Export client OpenVPN

Installer :

openvpn-client-export

Puis :

VPN → OpenVPN → Client Export

Télécharger :

Windows Installer (.exe)



6 — Firewall pfSense

Firewall → Rules → OpenVPN

Action      : Pass
Source      : OpenVPN net
Destination : LAN net
Protocol    : any



7 — Client VPN (VM Windows)

Installer :

contentReference[oaicite:0]{index=0}

Importer le fichier .ovpn

Connexion :

User     : vpnuser
Password : celui défini dans pfSense



8 — Tests de fonctionnement

Depuis la VM client :

ping 192.168.60.254
ping 192.168.60.33

Vérifier IP VPN :

10.8.0.x



Résultat attendu

✔ Connexion VPN établie ✔ IP tunnel 10.8.0.x attribuée ✔ Accès réseau 192.168.60.0/24 ✔ Accès aux VM internes Proxmox



Conclusion

La solution met en place un VPN Remote Access SSL/TLS sur pfSense dans un environnement Proxmox, permettant un accès sécurisé aux machines internes via authentification utilisateur et certificats.