Dans cet article, nous allons voir comment mettre en place une architecture reverse proxy sur Pfsense avec un niveau de sécurité plus important en configurant le HTTPS. L’objectif est de nous permettre d’avoir une seule IP publique derrière laquelle différents noms de domaine vont pointer donnant ainsi accès à différents sites web de manière sécurisée.
Dans mon précédent article, nous avions mis en place une architecture reverse proxy basique pour rediriger des sites Internet en utilisant le protocole de base HTTP. Nous allons dans ce nouveau tutoriel réaliser la même architecture en ajoutant la gestion de certificats et donc la mise en place de sites web en HTTPS qui est le standard sur la toile.
Pour que ce soit plus clair, voici le type d’architecture que nous allons mettre en place dans ce tutoriel :
Comme dans mon précédent article, j’ai un serveur physique chez OVH (mais peu importe votre hébergeur), contenant un serveur ESXi (outil de virtualisation). Sur ce serveur, j’ai installé une machine virtuelle sous PFsense, reliée à une IP de failover qui sera l’IP publique à travers laquelle nos deux noms de domaine (https://monsite1.com et https://monsite2.com) vont pointer. Derrière notre PFsense, nous avons donc deux machines virtuelles hébergeant chacune un serveur web différent.
Le serveur PFsense va agir comme un reverse proxy en envoyant les requêtes sur un serveur ou sur l’autre, en fonction du nom de domaine appelé. Si vous souhaitez commencer par mettre en place l’architecture sous ESXi, je vous invite à aller revoir la suite d’article que j’avais effectuée sur l’installation d’une architecture ESXi. Vous y trouverez comment installer et configurer ESXi, PFsense et vos serveurs web.
Je pars du principe dans ce tutoriel que vous avez déjà ces 5 points en place :
Dans le menu « Services » de PFsense, cliquez sur : « Squid Reverse Proxy » :
Vous arriverez sur la configuration de votre reverse proxy, allez directement dans l’onglet « Web Servers » pour configurer vos serveurs web qui devront être accessibles sur votre IP publique. Dans ce tutoriel, je vais ajouter 2 sites Internet mais vous pouvez en ajouter autant que vous le souhaitez. Cliquez sur « Add » pour ajouter votre premier site :
Dans la fenêtre qui est apparue, nous allons configurer notre premier serveur web. Dans l’ordre, voici les informations que vous devez remplir :
Faites de même pour votre deuxième site web en changeant les paramètres comme ceci :
Répétez l’opération précédente autant de fois que le nombre de vos serveurs web. Vous avez maintenant vos sites web configurés :
Maintenant que nous avons créé nos sites web, nous devons configurer la redirection. Allez dans l’onglet « Mappings » et cliquez sur « Add » :
Vous devrez avoir autant de mapping que de nom de domaine à rediriger. Voici comment les configurer :
Faites la même chose pour vos autres site web. Ci-dessous, un autre exemple pour « monsite2.com » :
Nous avons configuré les redirections de nos sites web vers nos différents serveurs web internes. Il nous reste encore à activer notre reverse proxy et à configurer le firewall pour qu’il accepte les requêtes venant de l’extérieur sur le port 443. Commençons par ajouter une règle sur le firewall, allez dans le menu « Firewall » puis « Rules » et cliquez sur « Add »:
Nous voulons autoriser (Action: Pass) sur l’interface « WAN » les requêtes IPv4 venant de n’importe quelle IP vers le port 443 comme ceci :
Sauvegardez cette règle et appliquez le paramètre. Vous devriez avoir une nouvelle règle comme ceci dans votre liste :
Pour que le HTTPS fonctionne, il va falloir faire quelques configurations supplémentaires. Nous allons mettre en place des certificats pour que les données soit bien sécurisées. Pour ce faire, allez dans le menu « System » puis « Cert. Manager » :
Nous commencerons dans l’onglet « CAs » afin de créer une autorité de certification, dans cet onglet cliquez sur « Add » :
De nombreuses informations sont à renseigner, voici la liste :
Une fois tous les champs remplis, vous pouvez cliquer sur « Save » :
Vous pouvez voir votre autorité de certification fraichement créée :
Ensuite pour que notre reverse proxy fonctionne en HTTPS, il faut créer un certificat. Allez dans l’onglet « Certificates » et cliquez sur « Add/Sign » :
De nombreuses informations sont à renseigner, voici la liste :
Pour finir et créer votre certificat, cliquez sur « Save » :
Vous verrez apparaitre dans la liste votre certificat avec la date de fin de validité :
Pour finir l’installation de notre reverse proxy avec le HTTPS, nous devons l’activer dans le menu « Services » puis « Squid Reverse Proxy » :
Dans la page qui s’affiche, descendez jusque « Squid Reverse HTTPS Settings » et renseignez ces 4 points :
Laissez tous les autres champs par défaut :
Si vous n’avez pas suivi mon précédent article sur le reverse proxy HTTP, n’oubliez pas, pour que le reverse proxy Squid de Pfsense soit actif, il faut aussi démarrer le proxy Squid en allant dans le menu « Services » puis « Squid Proxy Server » :
Enfin pour activer le proxy et démarrer par la même occasion votre reverse proxy, cochez « Enable Squid Proxy » :
Et voilà, vous avez maintenant un reverse proxy utilisant la protection HTTPS pour vos serveurs web.
Hello =)
Super tuto, je me tirais les cheveux depuis un moment, et aucun exemple/tuto n’étais aussi précis et détaillé que le tiens, alors BRAVO !
Cependant, il aurais été intéressant de faire une petite suite a ce tutoriel, en incluant les certificats généré par lets’Encrypt, avec le plugin ACME de PFSense. Car c’est bien sur cette fichue partie que je bloque…
En tout cas merci pour tes posts intéressant l’ami.
Bonjour,
Merci pour cet excellent tuto
Question : dans le menu « squid reverse proxy -> Reverse SSL Certificate » comment faire quand on a 2 certicicats SSL (Terena ou autre) ?
certificatSSL 1 pour monsite1.com sur IP 10.0.0.10
certificatSSL 2 pour monsite2.com sur IP 10..0.0.11
En effet, on n’a qu’1 seul choix possible dans la liste déroulante « Reverse SSL Certificate » , ce qui rend le ceriticat 2 inutilisable..
merci bien
Pareil que Jean Yves,
ce tuto permet de faire plusieurs sous domaine sur 1 seul domaine, comme
test1.all-it-network.com
test2.all-it-network.com
Mais pas
monsite1.com
monsite2.com
comme décrit dans le schéma du départ.
Ou alors il n y a une subtilité qui n est pas expliquée ?
Dans le menu « Reverse SSL Certificate » un seul certificat peut être sélectionné
À propos de l’auteur