Selfhosted
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules:
-
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
-
No spam posting.
-
Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.
-
Don't duplicate the full text of your blog or github here. Just post the link for folks to click.
-
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
-
No trolling.
Resources:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
view the rest of the comments
Talescale is awesome but you gotta remember that Talescale itself is one of those services (Yikes). Like all applications it's potentially susceptible to vulnerabilities and exploits so don't fall into the trap of thinking that anything in your private network is safe because it's only available through the VPN. "Defence in depth" is a thing and you have nothing to lose from treating your services as though they were public and having multiple layers of security.
The other thing to keep in mind is that HTTPS is not just about encryption/confidentiality but also about authenticity/integrity/non-repudiation. A cert tells you that you are actually connecting to the service that you think you are and it's not being impersonated by a man in the middle/DNS hijack/ARP poison, etc.
If you're going to the effort of hosting your own services anyway, might as well go to the effort of securing them too.
Tailscale isn't an exposed service. Headscale is, and it isn't connected to the Tailnet. It's a control server used to communicate public keys and connectivity information between nodes. Sure, a threat actor can join nodes to the Tailnet should it become compromised. But have you looked at Headscale's codebase? The attack surface is significantly smaller than anything like OpenVPN.
I'm all for ssl/tls, but it's more work and may not always be worth the effort depending upon the application, which is exactly why I recommended SmallStep+Caddy. Let's not pretend that introducing things like a CA don't introduce complexity and overhead, even if it's just distributing the root cert to devices.
Are you suggesting that these attack techniques are effective against zero trust tunnels? Given that the encryption values are sent out of band, via the control channel, how would one intercept and replay the traffic?
Absolutely! And it's a great system that I thoroughly recommend. The attack surface is very small but not non-existent. There have been RCE using things like DNS rebinding(CVE-2022-41924) etc. in the past and, although I'm not suggesting that it's in any way vulnerable to that kind of thing now, or that it even affected most users we don't know what will happen in future. Trusting a single point of failure with no defence in depth is not ideal.
I don't really buy this. Certs have been free and easy to deploy for a long time now. It's not much more effort than setting up whatever service you want to run as well as head/tailscale, and whatever other fun services you're running. Especially when stuff like caddy exists.
Yes! Do this if you don't want to get your certs signed for some reason. I'm only advocating against not using certs at all.
No I'm talking about defence in depth. If Tailscale is compromised (or totally bypassed by someone war driving your WiFi or something) then all those services are free to be impersonated by a threat actor pivoting into the local network after an initial compromise. Don't assume that something is perfectly safe just because it's airgapped, let alone available via tunnel.
I feel like it's a bit like leaving all your doors unlocked because there's a big padlock on the fence. If someone has a way to jump the fence or break the lock you don't want them to have free reign after that point.
My claim is that Headscale has a lesser likelihood of compromise than Nextcloud, and that the E2EE provides an encrypted channel between nodes without an immediate need for TLS. Of course TLS over E2EE enhances CIA. There's no pushback to defense in depth here. But in the beginning, the E2EE will get them moving in the right direction.
OP began the post by stating that the login page to a complex PHP web application is internet facing (again, yikes). Given the current implementation, I can only assume that OP is not prepared to deploy a CA, and that the path of least resistance -- and bolstered security -- can be via implementation of HS+TS. They get the benefit of E2EE without the added complexity, for which there is plenty, of a CA until if/when they're ready to take the plunge.
If we're going to take this nonsense all or nothing stance, don't forget to mention that they're doing poorly unless they implement EDR, IDS, TOTP MFA on all services, myriad DNS controls, and full disk encryption. Because those components don't add to the attack surface as well, right?
Totally agree on all points!
My only issue was with the assertion that OP could comfortably do away with the certs/https. They said they were already using certs in the post and I wanted to dispel the idea that they arguably might not need them anymore in favour of just using headscale as though one is a replacement for the other.