PSA: Docker nukes your firewall rules and replaces them with its own.

3 years ago by Kalcifer to c/selfhosted

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.

load all comments
JustEnoughDucks 17 points 3 years ago

This is standard, but often unwanted, behavior of docker.

Docker creates a bunch of chain rules, but IIRC, doesn't modify actual incoming rules (at least it doesn't for me) it just will make a chain rule for every internal docker network item to make sure all of the services can contact each other.

Yes it is a security risk, but if you don't have all ports forwarded, someone would still have to breach your internal network IIRC, so you would have many many more problems than docker.

I think from the dev's point of view (not that it is right or wrong), this is intended behavior simply because if docker didn't do this, they would get 1,000 issues opened per day of people saying containers don't work when they forgot to add a firewall rules for a new container.

Option to disable this behavior would be 100x better then current, but what do I know lol

path: 0 8329254, hotness: undefined, score: 17, children: 20
justJanne 14 points 3 years 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.

path: 0 8329254 8330802, hotness: undefined, score: 14, children: 4
lemmyvore -4 points 3 years 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.

path: 0 8329254 8330802 8332961, hotness: undefined, score: -4, children: 3
justJanne 1 point 3 years ago

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

path: 0 8329254 8330802 8332961 8333631, hotness: undefined, score: 1, children: 2
selfhosted
selfhosted

@lemmy.world

login for more options
62941
6793
5617

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:

Detailed Rules Post

  1. Be civil.

  2. No spam.

  3. Posts are to be related to self-hosting.

  4. Don't duplicate the full text of your blog or readme if you're providing a link.

  5. Submission headline should match the article title.

  6. No trolling.

  7. Promotion posts require active participation, with an account that is at least 30 days old. F/LOSS without a paywall has exceptions, with requirements. See the rules link for details. Tags [CBH] or [AIP] are required, see the links in Rule 8 for details.

  8. AI-related discussions and AI-involved promotional posts have additional requirements for tagging, as noted in Rule 7 and the AI & Promotional Post Expanded Rules post, and find example disclosures here.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

go to feed...