view the rest of the comments
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!
If you are trying to access several different services through the internet to your home network, you are better off setting up a home VPN than trying to manage multiple public facing services. The more you publish directly to the public, the more difficult it is to keep up with everything; It is likely needlessly expanding your threat exposure. Plus you never know when a new exploit gets published against any of the services you have available.
You mean than? Not being anal it but does change the meaning.
You're correct, imma let voice-to-text take the blame there.
Self hosted newbie here. What if those services are docker containers? Wouldn't the threat be isolated from the rest of the machine?
No. Docker containers aren't a full sandbox. There's a number of exploits that can break out of a container and gain root access to the host.
Rootless podman helps
Yes and no
Breaking out of docker in a real life context would require either a massive misconfiguration or a major security vulnerability. Chances are you aren't going to have much in the way of lateral movement but it is always good to have defense in depth.
If someone's self-hosting, I'd be willing to bet they don't have the same hardened config or isolation that a cloud provider would.
Docker restricts the permissions of software running in the container. It is hardened by default and you need to manually grant permissions in some rare cases.
Others have clarified, but I'd like to add that security isn't one thing - it's done in layers so each layer protects from potential failures in another layer.
This is called The Swiss Cheese Model. of risk mitigation.
If you take a bunch of random slices of Swiss cheese and stack them up, how likely is there to be a single hole that goes though every layer?
Using more layers reduces the risk of "hole alignment".
Here's an example model:
So a router that has no open ports, then a mesh VPN (wireguard/Tailscale) to access different services.
That VPN should have rules that only specific ports may be connected to specific hosts.
Hosts are on an isolated network (could be VLANS), with only specific ports permitted into the VLAN via the VPN (service dependent).
Each service and host should use unique names for admin/root, with complex passwords, and preferably 2FA (or in the case of SSH, certs).
Admin/root access should be limited to local devices, and if you want to get really restrictive, specific devices.
In the Enterprise it's not unusual to have an admin password management system that you have to request an admin password for a specific system, for a specific period of time (which is delivered via a secure mechanism, sometimes in person). This is logged, and when the requested time frame expires the password is changed.
Everyone's risk model and Swiss cheese layering will fall somewhere on this scale.
Is your container isolated from your internal network?
If I were to compromise your container, I'd immediately pivot to other systems on your private network.
Why do the difficult thing of breaking out of a container when there's a good chance I can use the credentials I got breaking in to your container to access other systems on your network?
it's an extra hurdle, but it's far from a guaranteed barrier. There's a whole class of exploits called
container escapes
(orhypervisor escapes
if you're dealing with old-school VMs) that specifically focus on escalating an attack from a compromised container into whatever machine is hosting the container.