I use nftables to set my firewall rules. I typically manually configure the rules myself. Recently, I just happened to dump the ruleset, and, much to my surprise, my config was gone, and it was replaced with an enourmous amount of extremely cryptic firewall rules. After a quick examination of the rules, I found that it was Docker that had modified them. And after some brief research, I found a number of open issues, just like this one, of people complaining about this behaviour. I think it’s an enourmous security risk to have Docker silently do this by default.

I have heard that Podman doesn’t suffer from this issue, as it is daemonless. If that is true, I will certainly be switching from Docker to Podman.

  • @justJanne
    link
    English
    144 months ago

    That assumes you’re on some VPS with a hardware firewall in front.

    Often enough you’re on a dedicated server that’s directly exposed to the internet, with those iptables rules being the only thing standing between your services and the internet.

    • lemmyvore
      link
      fedilink
      English
      -44 months ago

      What difference does it make if you open the ports yourself for the services you expose, or Docker does it for you? That’s all that Docker is meant to do, act as convenience so you don’t have to add/remove rules as the containers go up/down, or remember Docker interfaces.

      If by any chance you are making services listen on 0.0.0.0 and covering them up with a firewall that’s very bad practice.

      • @justJanne
        link
        English
        14 months ago

        There’s no alternative for 0.0.0.0 and a firewall if you’re e.g. using kubernetes.

        • lemmyvore
          link
          fedilink
          English
          -44 months ago

          I’m fairly sure you can find an alternative to whatever problem you’re having.

          • @justJanne
            link
            English
            54 months ago

            You need to be able to have multiple nodes in one LAN access ports on each others’ containers without exposing those to the world and without using additional firewalls in front of the nodes.

            That’s why kubernetes ended up removing docker support and instead recommends podman or using containerd natively.