I’ve been running Home Assistant for three years. It’s port forwarded on default port 8123 via a reverse proxy in a dedicated VM serving it over HTTPS and is accessible over ipv4 and ipv6. All user accounts have MFA enabled.
I see a notification every time there’s a failed login attempt, but every single one is either me or someone in my house. I’ve never seen a notification for any other attempts from the internet. Not a single one.
Is this normal? Or am I missing something? I expected it to be hammered with random failed logins.
This. Use Zero Trust Access Policies to restrict who can even get to HA in the first place. Also, with Tunnels, you don’t need the added risk of opening up ports to the world or worrying about certificates; just run cloudflared (not a typo) at home. This does require a domain and that domain to be added in Cloudflare, though.
To access you’ll have to get a code via email (or SAML, if you’ve got an auth source and the patience to set up, but it makes sign in easy going forward with password autofill), and it works just fine with the app remotely. Or certificates, as mentioned. Only after being authenticated to Cloudflare can someone access HA (or anything else you want to access remotely).
I’ve been able to run numerous services this way without opening a port or seeing a single bad login that wasn’t me for years.
Edit: Made the auth process more clear.