4 ms·
I’d assume a number of these would be due to the good old “docker punching a hole through UFW”, which still hasn’t been fixed.
by rbut 5y ago
I’d assume a number of these would be due to the good old “docker punching a hole through UFW”, which still hasn’t been fixed.
- charcircuit 5y agoWhy would you bind to a public IP and then use a firewall when you could just not bind to a public IP in the first place?
- rbut 5y agoBecause people use docker-compose.yaml files verbatim, or copy docker run command lines, which more often than not do “-p 8000:8000”, instead of “-p 127.0.0.1:8000:8000”. Therein lies the issue.
- jeroenhd 5y agoThe general expectation when running an application is that when you misconfigure your system, the firewall will at least block incoming traffic. If I run ./program, the system will prevent me from fucking up too badly, like it should if I docker run vendor/program, that extra layer of defence is gone. Most programs still bind to 0.0.0.0 and that's not a problem if your firewall works the way you expect it to. Docker's firewall rules overriding UFW's firewall rules without notice is unexpected for many people. I know I fell for this one years ago when I first messed around with Docker, luckily I wasn't running anything important.
- spiffytech 5y agoSometimes you want to allow traffic only from specific public IPs, or to rate limit traffic.
- giansegato 5y agoi'm very embarrassed to admit this, but i literally just discovered this. thought ufw was literally last defense. gotta run to fix this (luckily, all just pet projects with no sensitive stuff - still…)
- jeroenhd 5y agoHa, this reminds me of the day I found out. I've port scanned my own servers ever since, just in case. It's such an easy footgun to fall for, they should really put a big scary warning somewhere on the Docker installation page for Ubuntu or something.
- diftraku 5y agoWe had this issue previously and solved it with ufw by using the built-in DOCKER-USER chain that allows you to filter traffic before it hits Docker's own rules. Adding the relevant lines to UFW's before.rules means they persist across reloads. For more on Docker's built-in chains, see: https://docs.docker.com/network/iptables/#add-iptables-policies-before-dockers-rules https://docs.docker.com/network/iptables/#add-iptables-polic...