• VPN OpenVPN client-to-site avec PFSENSE

     

    VPN OpenVPN client-to-site avec PFSENSE

     

    Pour les besoins du labo, nous avons utilisé une IP privée (172.20.0.0/12) pour simuler l'internet.
    Le fonctionnement reste cependant le même.

    Un collaborateur souhaite, depuis chez lui, pouvoir accéder au site intranet de son entreprise hébergé sur un serveur web (SRV-WEB) dans le batîment.

    Nous allons (en temps qu'administrateur, depuis le PC admin) configurer le pare-feu de l'entreprise (pfsense1) afin qu'il devienne un serveur OpenVPN, auquel le PC collaborateur pourra se connecter pour accéder au serveur SRV-WEB.

    On considère que tous les OS sont déjà installés sur les différentes machines.
    On ne s'occupe ici que du paramétrage.

    I - Effectuer le paramétrage du pare-feu pfsense1 en lignes de commande:
    - Assigner les cartes réseaux aux bonnes interfaces
    - Assigner les IP aux interfaces.

    Conformément au schéma, voici ce que vous devez obtenir, après avoir assigné les interfaces 1) et attribué l'IP pour chaque interface ainsi que la passerelle pour le WAN 2)

    VPN OpenVPN client-to-site avec PFSENSE

    II - Effectuer le paramétrage du pare-feu box-SFR en lignes de commande : (pour ce labo, on monte un second pfsense)
    - Assigner les cartes réseaux aux bonnes interfaces
    - Assigner les IP aux interfaces.

    Conformément au schéma, voici ce que vous devez obtenir, après avoir assigné les interfaces 1) et attribué l'IP pour chaque interface ainsi que la passerelle pour le WAN 2)

    VPN OpenVPN client-to-site avec PFSENSE

    III - Effectuer la configuration réseau de chaque machine selon le schéma

    - PC admin
    - SRV-WEB
    - PC collaborateur

    Pour le PC collaborateur, ne pas oublier de faire un enregistrement DNS pour le site intranet auquel il souhaite pouvoir accéder.
    Nous allons créer le site assistance.lan (GLPI).
    Donc, dans le fichier hosts :
    10.1.0.200 assistance.lan

    Par défaut, PFSENSE laisse passer tous les paquets en provenance du LAN et à destination du WAN (comme la box SFR)
    Donc même si ce n'est pas une vraie box SFR, le fonctionnement est le même. Il n'y a donc aucune règle à ajouter.

    IV - Déployer le site intranet assistance.lan sur le SRV-WEB
    Téléchagez le script de configuration global debian ou freebsd pour aller plus vite.
    faîtes également un enregistrement DNS sur le PC admin pour pouvoir tester le bon fonctionnement et faire la première configuration de GLPI.

    V - On passe à la configuration du serveur OpenVPN sur le pfsense1 de l'entreprise.
    On se connecte depuis le PC admin à l'interface grahpique de pfsense via son URL : http://10.10.0.254

    1) Créer l'authorité de certification (en fait, on prend directement celle de pfsense, pas besoin d'en créer une)
    System -> Cert. Manager -> CAs -> + Add
     Descriptive Name : VPN-CA
     Method : Create an internal Certificate Authority
     Lifetime (days) : 1095 (3 ans)
     Country Code : FR
     State or Province : ce que vous voulez
     City :
     Organization : VOTRE ENTREPRISE
     Organizational Unit : IT  
     Save

    2) Créer le certificat du Serveur OpenVPN
    System -> Cert. Manager -> Certificates -> + Add/Sign
     Method : Create an internal Certificate
     Descriptive name : VPN-SERVER
     Certificate authority : VPN-CA
     Lifetime (days) : 1095 (3 ans)
     Common Name : VPN.domaine (s'il y a un domaine.. genre TSSR.INFO -> VPN.TSSR.INFO)  
     Country Code : FR
     State or Province : ce que vous voulez
     City :
     Organization : VOTRE ENTREPRISE
     Organizational Unit : IT
     Certificate Type : Server Certificate  
     Alternative Names : FQDN or Hostname : VPN.domaine
     Save

    3) Si vous voulez créer un certificat spécifique à un utilisateur, faîtes cette étape 3), sinon, pour créer un certificat pour tous les utilisateurs, répétez l'étape 2), donnez le Descriptive Name : VPN-CLIENT et changez le Certificate Type pour User Certificate. 

    System -> User Manager -> Users -> + Add
     Username : micheline
     Password : P@ssw0rd  (NE PAS DEPASSER 15 CARACTERES... SINON PROBLEMES SUR DES CLIENTS          BSD SI VOUS CHOISISSEZ UNE AUTHENTIFICATION SSL/TLS/USER AUTH LORS DE LA CREATION            DU SERVEUR !!!)
     Certificate : Click to create a user certificate
     Descriptive name : VPN-MICHELINE
     Lifetime : 1095
     Save

    4) Créez le serveur OpenVPN
    VPN -> OpenVPN -> Servers
     Server mode : Remote Access (SSL/TLS) -> Permet de ne pas avoir à rentrer d'identifiant et de mot de passe           sur le client au moment de la connexion au VPN
     Device mode : tun - Layer 3 Tunnel Mode
     Protocol : UDP on IPv4 only (par exemple)
     Interface : WAN
     Local port : 1194
     Description : SERVEUR-OPENVPN
     TLS Configuration : Use a TLK Key  
     Peer Certificate Authority : VPN-CA  
     Server certificate : VPN-SERVER (Server: Yes, CA: VPN-CA, In Use)  
     DH Parameter Length : 2048 bit  
     Data Encryption Negotiation : Enable Data Encryption Negotiation  
     Data Encryption Algorithms : enlever l'AES-128 de la colonne de droite en cliquant dessus  
     Fallback Data Encryption Algorithm : AES-256-CBC (256 bit key, 128 bit block) 
     Auth digest algorithm : SHA-256 (256-bit)  
     Certificate Depth : Two (Client+Intermediate+Server)  
     Client Certificate Key Usage Validation : Enforce key usage  
     IPv4 Tunnel Network : 10.199.199.0/24 (ou une adresse de classe APIPA 169.254.0.0/16)  
     Redirect IPv4 Gateway : Force all client-generated IPv4 traffic trough the tunnel (dans le cas où vous souhaitez          que toutes les requêtes web du client passent par le tunnel.. Attention aux règles de pare-feu OpenVPN qui          suivront !! Dans le cas présent, on ne l'active pas, puisqu'on ne va autoriser la connexion QUE vers le SRV-          WEB)  
     IPv4 Local network(s) : 10.1.0.0/24  
     Concurrent connections : 20 (tout dépend du nombre de personnes qui se conecteront au serveur openvpn)  Dynamic IP : A vous de voir si vos clients sont en IP fixes ou dynamiques...
     Topology : net30 --Isolated /30 network per client (si vous voulez isoler les clients.. attention, utilise 4 adresses            IP par connection ! -> /30)  
     Inactive : 0
     DNS Default Domain : cocher si vous avez un domaine (genre TSSR.INFO)  
     DNS Server enable : permettre au client d'utiliser le DNS de l'entreprise (indispensable dans le cas d'un active            directory). Rajoute une carte réseau virtuelle sur le client, permettant de renseigner le DNS du Serveur AD            de l'entreprise (où celui qui vous arrange !)  
     Block Outside DNS : pour clients windows 10  
     Force DNS cache update : forcer la mise à jour du cache DNS sur les clients windows  
     NTP Server enable : si l'entreprise est reliée à un serveur NTP particulier
     Save

    6) Créer la règle côté WAN,               
    permettant une connexion sur le port 1194
    Firewall -> Rules -> WAN -> Add  
    Protocol : UDP  
    Source : any  
    Destination Port Range : From 1194 To 1194  
    Description : OpenVPN-access  
    Save  

    Apply Change

    Firewall -> Rules -> OpenVPN -> Add (créer les règles souhaitées.. interdire l'accès à l'AD etc..)  
    Pour l'exemple, on va uniquement autoriser la connexion vers le SRV-WEB  
    Protocol TCP  
    Source Network : 10.199.199.0 /24  
    Destination : Single host or alias : 10.1.0.200 (IP de SRV-WEB)  
    Destination : From 80 to 80  
    Description : SRV-WEB_access  
    Save  

    Apply Change

    Dernier point à modifier : dans notre cas de figure, le WAN est un réseau d'IP privé..
    Or, par défaut, PFSENSE bloque les IP provenant des réseaux privés à son entrée WAN.

    Firewall -> Rules -> WAN : RFC1918
    Ouvrez la règle par défaut concernant l'interdiction des réseaux privés d'accéder par la WAN (RFC1918)
    Allez décocher les 2 options tout en bas de la règle, enregistrez, et appliquez les changements.

    7) Installer le module openvpn-client-export
    System -> Package Manager -> Available Packages -> Search term : openvpn -> Search
    installez openvpn-client-export

    8) Exportez la configuration pour l'utilisateur Micheline (ou celui pour tout le monde)
    VPN -> OpenVPN -> Client Export ->  Remote Access
    Server : SERVEUR-OPENVPN UDP4:1194  
    Additional configuration options : auth-nocache  
    Save as default  (descendre plus bas)  
    VPN-CLIENT-MICHELINE  
    - Pour un client sur Windows : Current Windows Installers  
         Télécharger la version windows qui correspond au poste client  
    - Pour un client sur Linux/FreeBSD : Inline Configurations  
         Télécharger 'Most Clients' qui contient la totalité du fichier de configuration du client.

    9) Transférez ce fichier sur le client. Pour un client sur FreeBSD, le script de configuration général permet de configurer le client automatiquement.          

     


    Tags Tags : , ,