Pfsense : Mise en place d’un reverse proxy
4 avril 2019Si vous souhaitez héberger plusieurs applications web sur différents serveurs web sur une seule adresse IP publique, il vous sera utile de mettre en place un Reverse Proxy. Dans cette article Pfsense : Mise en place d’un reverse proxy, nous verrons comment utiliser le plugin Squid de pfsense et rediriger le flux vers vos différents serveurs web.
1- Installation du plugin Squid
Pfsense ne gère pas nativement le reverse proxy. Pour cela, nous allons commencer par installer le plugin Squid
Rendez-vous dans System puis Package Manager
Cliquez sur Available Packages
Dans l’encadré Search term, recherchez » squid » puis cliquez sur le bouton Search
Sur la ligne du plugin squid, cliquez sur le bouton Install
L’installation du plugin est terminée. Passons maintenant à sa configuration.
2- Configuration du plugin Squid
Par défaut, le Squid Reverse proxy n’est pas activé. Nous devons le configurer avant de l’activer.
Pour cela, rendez-vous dans Services puis Squid Reverse Proxy
Commençons par l’onglet General
Sélectionnez l’interface WAN
Assurez-vous de bien avoir renseigné le champs External FQDN
ex : Votre nom Dyndns
Cochez la case Enable HTTP Reverse Proxy
Renseignez le champ Reverse HTTP port en indiquant 80
Cliquez ensuite tout en bas sur le bouton Save
Rendez-vous ensuite sur l’onglet Web Server
Cliquez sur le bouton Add
L’exemple décrit l’ajout du serveur nommé web01 avec l’adresse IP 192.168.1.60
Complétez les champs suivants :
- Peer Alias : un alias qui vous permettra d’identifier la configuration
- Peer IP : l’adresse l’IP de votre serveur web en aval
- Peer Port : le port http soit 80
- Peer Protocol : le protocole http
- Peer Description : Une description pour cette règle
Et pensez à cocher la case Enable this peer
Cliquez sur l’onglet Mappings Puis le bouton Add
Nous allons maintenant faire le lien avec notre URL et notre serveur web. Dans l’exemple, j’ajoute l’URL siteweb.xxxxxxxx.com lié au serveur web01
Cochez la case Enable this URL pour activer votre règle puis complétez les champs :
- Group Name : Nom vous permettant d’identifier cette URL
- Group Description : Optionnel, description pour vous
- Peers : Sélectionnez le serveur que vous avez ajouté précédemment. Ici web01
- URL : l’URL de votre site web
Cliquez sur le bouton Add
3- Configuration des règles de firewall
Passons maintenant à l’ajout d’une règle de firewall pour autoriser le flux HTTP
Rendez-vous dans Firewall > Rules puis cliquez sur Add
Pensez bien à cliquer sur Apply Changes pour valider la configuration
Nous avons maintenant terminé. Si votre DNS public et que votre serveur web sont correctement configurés, l’accès à votre URL doit s’effectuer depuis l’extérieur.
N’oubliez pas d’ajouter vos règles de NAT dans votre box par exemple qui redirige vers votre serveur Pfsense.
Bugs depuis la version 2.2.x
Un bug est connu depuis la version 2.2 de pfsense. Il est nécessaire d’autoriser Squid à utiliser les ports inférieur à 1024
Pfsense réserve par défaut les ports 0 à 1024 pour le système. Vous verrez cette erreur lors de l’ajout du port 80 à Squid Reverse Proxy, le service ne va pas démarrer.
Pour le corriger, rendez-vous dans System > Advanced > System Tunables
Cliquez ensuite sur New pour ajouter une règle
Indiquez les informations suivantes :
- Tunable : net.inet.ip.portrange.reservedhigh
- Value : 0 (vous pouvez également mettre 70, les ports allant de 0 à 70 resteront réservé au système)
- Description : Une description pour vous y retrouver