I have a suite of services exposed using a reverse proxy (npm) protected with passwords, but I’m always a bit nervous that username/passwords aren’t enough – is there a way to set up 2FA either on Nginx Proxy Manager side or on, e.g., the 'arr suite of apps?
You could look into apps like authelia, keycloak, authentic, etc.
authelia
Ah that sounds like exactly what I’m looking for, actually. Thanks. Any tutorial you have that you can recommend?
Yep! Authentik is my choice there, and it works flawlessly for my use-cases. The only thing that keeps me on my toes is still the celery dependency on redis that makes it not HA. They’re working on it and making me happy :)
If you’re comfortable with using Cloudflare, you can use their zero trust tunneling and setup an application layer that adds auth to those services. I have mine protected by my GitHub login.
Oh interesting. I’m using zero trust tunneling already to get through my ISP network chicanery. How would that work? Do yo uhave any tutorials you can recommend?
You can secure your tunnels using the Access menu and then adding an application. It should be somewhat straight-forward but you’re basically looking to create an access policy and then adding the rules you want. For example a simple one is to add an allow rule for certain emails. When you enter your email an access code will be sent to you before you can access the application resource. That’s just one of many ways to secure it using their application config and access policies.
Not sure if it fits your requirements exactly but I just put a service behind TwinGate and it works well for my usage case. I can allow my wife secure access to services she needs to access from anywhere securely - she just opens the app to connect and she can access what she needs.
I haven’t but you can enable 2FA, as well as restricting based on things like hardware, OS and whether a device has biometrics.