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?

  • Dagnet@lemmy.world
    link
    fedilink
    English
    arrow-up
    4
    ·
    20 hours ago

    Self hosted newbie here. What if those services are docker containers? Wouldn’t the threat be isolated from the rest of the machine?

    • Onomatopoeia@lemmy.cafe
      link
      fedilink
      English
      arrow-up
      2
      ·
      6 hours ago

      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.

    • Technus@lemmy.zip
      link
      fedilink
      English
      arrow-up
      17
      arrow-down
      2
      ·
      20 hours ago

      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.

      • Possibly linux@lemmy.zip
        link
        fedilink
        English
        arrow-up
        6
        ·
        18 hours ago

        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.

        • Technus@lemmy.zip
          link
          fedilink
          English
          arrow-up
          3
          ·
          15 hours ago

          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.

          • Possibly linux@lemmy.zip
            link
            fedilink
            English
            arrow-up
            2
            ·
            9 hours ago

            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.

    • non_burglar@lemmy.world
      link
      fedilink
      English
      arrow-up
      7
      arrow-down
      2
      ·
      20 hours ago

      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?

    • oddlyqueer@lemmy.ml
      link
      fedilink
      English
      arrow-up
      5
      arrow-down
      1
      ·
      20 hours ago

      it’s an extra hurdle, but it’s far from a guaranteed barrier. There’s a whole class of exploits called container escapes (or hypervisor 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.