Nginx Proxy Manager est un proxy inverse open source utilisé pour rediriger le trafic d’un site Web vers l’endroit approprié. L’utilisation de Nginx Proxy Manager permet d’utiliser une seule adresse IP publique pour héberger de nombreux services Web différents.
Le but de cette page de Wiki est d’expliquer comment utiliser Nginx Proxy Manager pour rediriger le trafic d’un site Web de manière sécurisée.
La première chose à faire est la redirection des ports sur le routeur.
On redirige le port 80 et 443 vers l’adresse IP LAN de Nginx Proxy Manager.
Expliquer exactement la marche à suivre, je ne saurais pas. Elle est propre à chaque routeur.
Néanmoins, je peux fournir une capture des redirections sur un de mes routeurs, qui est le TP-Link Archer C80.
TP-Link Archer C80 - Redirections de ports
On va maintenant se rendre sur l’interface (dashboard) de Nginx Proxy Manager.
Pour ma part, ce sera l’adresse IP 192.168.2.210 avec le port 81 qui va bien.
Ce qui nous intéresse ici, et qui est la partie la plus importante de ce que propose Nginx Proxy Manager, c’est la fonctionnalité “Proxy Hosts”.
Nginx Proxy Manager Dashboard - Proxy Hosts
L’ensemble des redirections chez moi…
Ensemble des Proxy Hosts Blabla Linux
On clique sur le bouton en haut à droite “Add Proxy Host”…
Nginx Proxy Manager - Add Proxy Host
On arrive sur cette fenêtre…
Nginx Proxy Manager - Add New Proxy Host
On va prendre comme exemple le Wiki Blabla Linux, onglet “Details”…
Nginx Proxy Manager - Edit Proxy Host
Avant d’aller plus loin, vous devez avoir un nom de domaine !
Pour ma part, mon nom de domaine est “blablalinux.be”.
Il renvoie vert le blog Blabla Linux.
À partir de ce dernier, j’ai créé plusieurs sous domaine :
… et encore d’autres.
Nginx Proxy Manager s’occupe des redirections vers les différentes machines qui hébergent les services.
Redirection adresse publique IP WAN Wiki blabla Linux
Routeur - Redirection adresse IP LAN Nginx Proxy Manager
Wiki Blabla Linux - Redirection IP LAN Nginx Proxy Manager - Onglet “Details”
Wiki.js Blabla Linux
Nous allons voir ce qu’il faut remplir/cocher pour une bonne redirection.
Domain Names
Le (sous) domaine doit être identique à celui créé chez le bureau d’enregistrement (OVH pour moi).
Scheme
Comment accède-t-on au service ? Via HTTP ou HTTPS ?
Forward Hostname / IP
Le nom d’hôte de la machine (wiki.local) ou l’adresse IP LAN de celle-ci (192.168.2.154).
Forward Port
Le port au travers duquel on accède au service sur l’adresse IP LAN du service.
Cache Assets
Sans rentrer dans trop de technique, “Cache Assets” est un système de mise en cache côté Nginx, côté serveur. À utiliser seulement pour des services qui sont fortement sollicités. Les navigateurs sont modernes. Ils disposent déjà d’un système de mise en cache. On parle de mise en cache côté client. Si on choisit malgré tout d’activer le cache Nginx, il est conseillé, au début, de surveiller comment se comporte le service au niveau des ressources utilisées.
Block Common Exploits
Le serveur proxy inverse peut filtrer le trafic malveillant. Nginx Proxy Manager inclut un mode “bloquer les exploits courants”. Il peut également filtrer les adresses IP. Par exemple, on souhaite peut-être autoriser uniquement l’accès à certaines adresses IP.
Websockets Support
Le protocole WebSocket permet d’ouvrir un canal de communication bidirectionnel (ou « full-duplex ») sur un socket TCP entre le navigateur et le serveur web.
Plus spécifiquement, il permet :
Exemple, le service utilise de l’audio, de la vidéo. Le service envoi des notifications, comme Mattermost, on active cette case.
Je passe l’onglet “Custom Location” et “Advanced”. Ils seront vus lors d’une mise à jour de cette page de Wiki. Le plus important est l’onglet “Details”, que nous venons de voir, et l’onglet “SSL” que nous allons voir.
Nginx Proxy Manager - Onglet SSL
Partons du principe que l’on souhaite sécuriser la requête. On va donc sélectionner “Request a new SSL Certificate” dans “SSL Certificate”.
Force SSL
Forcer SSL force le navigateur à rediriger HTTP vers HTTPS.
HTTP/2 Support
HTTP/2 est la version révisée du protocole HTTP original. C’est la nouvelle version. Voulez-vous qu’il soit supporté ou non ?
HSTS enabled
Il ne pourra être activé que si “Force SSL” est d’abord activé. HTTP Strict Transport Security (HSTS) est un mécanisme de politique de sécurité proposé pour HTTP.
Lorsque la politique HSTS est active pour un site web, l’agent utilisateur compatible opère comme suit :
La politique HSTS aide à protéger les utilisateurs de sites web contre quelques attaques réseau passives (écoute clandestine) et actives. Une attaque du type man-in-the-middle ne peut pas intercepter des requêtes tant que le HSTS est actif pour le site.
Plus d’information sur Wikipédia.
HSTS Subdomains
Ne pourra être activé uniquement si “HSTS enabled” l’est auparavant. Il permet d’utiliser la politique HSTS également sur les sous domaine.
Use DNS Challenge
Cette option sert à prouver que le domaine vous appartient !
Pour utiliser cette option, il faut créer une entrée DNS type TXT chez le fournisseur de domaine.
Plus haut, j’ai donné l’onglet “Details” du Wiki Blabla Linux. Je vais achever en donnant l’onglet SSL du Wiki Blabla Linux…
Wiki Blabla Linux - Redirection IP LAN Nginx Proxy Manager - Onglet “SSL”
On est loin d’avoir fait le tour de ce formidable utilitaire Nginx Proxy Manager.
On a seulement vu deux onglets de “Proxy Hosts” !
On a vu les options principales à utiliser pour effectuer une redirection sécurisée avec Let’s Encrypt grâce à Nginx Proxy Manager.
Il y aura donc, soit une mise à jour de cette page avec des explications supplémentaires, ou, la création de nouvelles pages (part. 2, part. 3, etc.) qui compléteront celle-ci.