Alright, I think this is solved since what I was attempting technically works now. That said, I've noticed/learned a few things and am curious...
With the proxy ACLs in place, it would appear I don't even need the original firewall rule allowing access to the service domains. I only need the rule allowing access to the proxy and then NPM takes care of the rest. Is this technically the "correct" way of going about it anyway? Or have I stumbled into the "wrong" way of getting it to work? I ask because even though I'm operating all of this in my home primarily as a way to learn deeper networking topics, I enjoy doing things cleanly and following "best practices".
I have been considering switching over to Traefik as my proxy so I can play around/learn with it and things like Authentik and Crowdsec as middlewares. The Traefik docs mention adding IP access lists to the labels to restrict access like I'm now doing in NPM. Again, I'm assuming that would be the correct way of going about it? I'm trying to mentally square the extent of the firewall's job and the jobs of things like Traefik and Authentik so far as service access and authentication goes. I am starting to suspect I need to alter my thinking from "access control is solely the job of the firewall" to "the firewall is a part of a larger access/security stack with many parts".
With the proxy ACLs in place, it would appear I don't even need the original firewall rule allowing access to the service domains. I only need the rule allowing access to the proxy and then NPM takes care of the rest. Is this technically the "correct" way of going about it anyway? Or have I stumbled into the "wrong" way of getting it to work? I ask because even though I'm operating all of this in my home primarily as a way to learn deeper networking topics, I enjoy doing things cleanly and following "best practices".
I have been considering switching over to Traefik as my proxy so I can play around/learn with it and things like Authentik and Crowdsec as middlewares. The Traefik docs mention adding IP access lists to the labels to restrict access like I'm now doing in NPM. Again, I'm assuming that would be the correct way of going about it? I'm trying to mentally square the extent of the firewall's job and the jobs of things like Traefik and Authentik so far as service access and authentication goes. I am starting to suspect I need to alter my thinking from "access control is solely the job of the firewall" to "the firewall is a part of a larger access/security stack with many parts".
"