J’ai configuré Nginx Proxy Manager et cela fonctionne à merveille. Cependant, j’ai certains services auxquels je veux pouvoir accéder via un proxy inversé, pour avoir SSL et pouvoir utiliser un nom de domaine pour me diriger vers un service, mais je veux seulement y accéder via VPN. Ma meilleure idée pour faire fonctionner tout ça est de configurer l’accès de manière à ce que seules les connexions provenant de mon réseau local puissent accéder à certains hôtes proxy. Cela donne un code 403 à toute tentative d’accès externe. Est-ce la meilleure ou la seule solution ? Hors services supplémentaires comme Authelia et Fail2Ban, bien sûr, mais je voulais savoir si j’ai la bonne idée.
Je ne suis pas sûr de comprendre, mais si tu fais ce que je pense que tu fais, tu pourrais simplement avoir deux proxies : un pour l’accès interne et un pour l’accès externe, chacun avec leur propre ensemble de noms d’hôtes proxy. Tu exposes évidemment seulement le dernier sur ton port 443 (favorisation du port 443) et tu t’assures de ne pas définir tes services plus privés sur celui-ci.
Alternativement, tu pourrais utiliser le geo souvent négligé dans ta configuration nginx, en supposant que NPM le propose (je ne l’utilise pas donc je ne suis pas certain).
g.ex.
geo $public {
default 1;
192.168.0.1/24 0; # sous-réseaux internes
192.168.1.0/24 0; # inclut aussi ton sous-réseau VPN
}
Ensuite, tu peux faire en sorte que toute configuration proxy ‘hostel restrictif’ vérifie $public et redirige avant de proxyfier vers les services privés si l’accès ne provient pas d’un sous-réseau interne/VPN, par exemple :
if ($public) {
return 302 https://www.exemple.com;
}
# configuration proxy normale ici...