Some services run really good behind a reverse proxy on 443, but some others can really become an hassle… And sometimes just opening other ports would be easier than to try configuring everything to work through 443.
An example that comes to my mind is SSH, yeah you can use SSLH to forward requests coming from 443 to 22, but it’s so much easier to just leave 22 open…
Now, for SSH, if you have certificate authentication or a strong password, I think you can feel quite safe, but what about other random ports? What risks I’m exposing my server to if I open some of them when needed for a service? Is the effort of trying to pass everything through 443/80 worth it?
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.
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.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?