this post was submitted on 11 Mar 2024
213 points (90.5% liked)

Selfhosted

40198 readers
1002 users here now

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:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. 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.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

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

Questions? DM the mods!

founded 1 year ago
MODERATORS
 

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.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 2 points 8 months ago* (last edited 8 months ago) (3 children)

So uh, I just spun up a vps a couple days ago, few docker containers, usual security best practices... I used ufw to block all and open only ssh and a couple others, as that's what I've been told all I need to do. Should I be panicking about my containers fucking with the firewall?

[–] [email protected] 7 points 8 months ago (1 children)

Probably not an issue, but you should check. If the port opened is something like 127.0.0.1:portnumber, then it's only bound to localhost, and only that local machine can access it. If no address is specified, then anyone with access to the server can access that service.

An easy way to see containers running is: docker ps, where you can look at forwarded ports.

Alternatively, you can use the nmap tool to scan your own server for exposed ports. nmap -A serverip does the slowest, but most indepth scan.

[–] [email protected] 1 points 8 months ago

Just waking up, I've been running docker on my nas for a few years now and was never made aware of this - the nas ports appear safe, but the vps is not, so I swapped in 127.0.0.1 in front of the port number (so it's now 127.0.0.1:8080:80 or what have you), and that appears to resolve it. I have nginx running so of course that's how I want to have a couple things exposed, not everything via port.

My understanding was that port:port just was local for allowing redirection from container to host, and you'd still need to do network firewall management yourself to allow stuff through, and that appears the case on my home network, so I never had reason to question it. Thanks, I learned something today :)

Might do the same to my nas containers, too, just to be safe. I'm using those containers as a testbed for the vps containers so I don't want to forget...

[–] [email protected] 4 points 8 months ago (1 children)

Docker will have only exposed container ports if you told it to.

If you used -p 8080:80 (cli) or - 8080:80 (docker-compose) then docker will have dutifully NAT'd those ports through your firewall. You can either not do either of those if it's a port you don't want exposed or as @[email protected] says below you can ensure it's only mapped to localhost (or an otherwise non-public) IP.

[–] [email protected] 1 points 8 months ago

Thanks - more detailed reply below :)

[–] [email protected] 3 points 8 months ago

Actually, ufw has its own separate issue you may need to deal with. (Or bind ports to localhost/127.0.0.1 as others have stated.)