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.
Hold your horses, I’ll get to you next.
I think it’s not quite as well known or prevalent as other services (as say SSH) so likely doesn’t have anything automated attacking it yet. If you check something like http://shodan.io/ against your ip, I’d guess the service has been found.
Home Assistant likely won’t come under any kind of attack until there’s a very easy to exploit, unpatched zero-day vulnerability in the wild. Given how many people (myself included) who have HA exposed publicly it’s really a matter of time. The best mitigation is not exposing publicly if possible, and staying up to date.
In my case I don’t expose HA over 8123, I have a proxy on 443 where HA is not the default host name, meaning if you don’t use the right host HA doesn’t receive the traffic. As I’d expect that automated attackers wouldn’t what my host is it’s a reasonable layer in the security onion. I don’t expect anything would realistically protect from a targeted attack but I’m also not important enough to be targeted.
that seems abnormal, but if you’re worried about people creeping into your infra, you could add a VPN for an extra layer of security. i use Tailscale, and it works like a charm
I get that too. There’s almost always a notification. I’ve just started ignoring it, which is a terrible habit.
Alert fatigue is always a sign that the alerting isn’t on point enough. I have no good idea for a replacement here though.
I would highly consider putting your HA behind a cloudflare tunnel if possible.
Set up client certs so you can access it on your phone when away from home
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.
Yes it is completely normal. The Internet is almost but not quite as bad as security wonks claim. Especially since you’re not on the default port, most scanners don’t have the programming to attempt on Home assistant. Most of them are built for more common exploits.
If you look at your proxy logs, you’ll see attempts at various random paths, but those should all be 404 or 403s.
That’s normal if you’re not exposing it to the Internet I suppose. Probably not a lot of bots out there looking for it, but the better question is WHY you have it exposed to the internet.