It’s not Home Assistants responsibility, but what about a check when HA installs to see if UPNP is enabled and tell the user to disable it? Just an idea
I’ve come across that too. I remember almost using it for some simple. err, synching between PCs and NAS drives here. I think I used another solution (I think it was FreeFileSync) but I will look again at synchthing.
Run a vpn as well one the secure browsing reason as well. Occasionally I will use WiFi out and about instead of LTE, I run the Openvpn client program on my phone that will automatically start the tunnel if it sees a wifi name that isn’t whitelisted, when wifi goes down, the tunnel is torn down.
This would make your experience a little less seamless, but have you considered making the VPN 2FA? With Google Authenticator - it would add time to your ‘get connected time’, I might be a bit paranoid, but say I lost my phone, someone could get on my VPN if I didn’t use something like 2FA (something I have + something I know)
Unfortunately I probably wouldn’t use it like before I never used wifi and just used LTE since it was easier. I guess it would solve the case where I lost my phone while unlocked. I have other ways to revoke the one device key or just turn off the vpn altogether.
I just had a look at this again and it is not clear to me how I would use it with hassio as every device needs to have it installed. I don’t want to divert this thread so unless the answer is trivial I am happy to let it hang for now and maybe I’ll raise a new post for it.
BUT:
The synchthing website front page says:
“Syncthing doesn’t need IP addresses or advanced configuration: it just works…UPnP will do [my italics] if you don’t want to port forward or you don’t know how”
And there is the problem with network security. It’s so complex. Most on here talk about UPnP as though it is the spawn of the devil and yet Syncthing promotes it as a valid protocol.
It’s worth noting that my router is a Cisco, that for the avoidance of doubt is a “We make the Internet work” Cisco router and UPnP is on by default. It’s the stupid default in the Samba plugin that’s the real problem here. Whilst VPN tunnels and 2FA are a great idea, I use 2FA on all my business stuff every day, I don’t want that getting in the way of my family using the iPhone app which should be fully trusted by HA but the more I look at it, the more it looks like an HTML app. There should be a trust mechanism though so that only authorised apps can access directly and then require 2FA on the web interface.
Only the devices you want to sync with need it installed.
But the benefits?
You have multiple points of backup of your config.
Built in version control on every device you have connected to it.
You don’t need to expose it or allow it to use UPNP, and you do not need to forward any ports
You edit your files LOCALLY on your device (desktop/laptop/etc) and not over SMB, and don’t even have to be on the same network to edit, if you wanted to make some changes while out travelling.
You can easily turn this off with a tick of a box.
Syncthing uses it in a VERY different way than what others are talking about here. In order to add a device to Syncthing, you are required to have a ‘device id’, and both ‘sides’ have to agree to the device addition
I love that you use 2fa and VPN, I personally use them together too but not to access HA. It seems like the ”hassle” kills the user experience.
This is what I’ve settled for:
Access something via VPN, eg. VNC, SSH and other services (OpenVPN 2FA + fail2ban)
Access SSH externally (SSH 2FA + fail2ban + privateKey w. long passphrase, dissabled password)
Access a webapp externally (Reverse proxy + 2FA + the apps login + fail2ban)
Access something via LAN: no VPN or 2FA.
This provides for me, a level where I can use my services comfortably but securly. A couple of users have contacted me regarding setting up 2FA, you’re more than welcome to set up a guide that I can point at.