ubuntu-16.04firewalldigital-oceanufw

UFW firewall is not working on Ubuntu in DigitalOcean


In my DigitalOcean (DO) droplet I installed this image: Ubuntu Docker 17.12.0~ce on 16.04 (which is available on ** DO website > droplet> destroy> rebuild droplet**) , in ssh (after user configuration), I run

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw enable
sudo ufw status verbose

and get:

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), allow (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22                         LIMIT IN    Anywhere                  
2375/tcp                   ALLOW IN    Anywhere                  
2376/tcp                   ALLOW IN    Anywhere                  
22 (v6)                    LIMIT IN    Anywhere (v6)             
2375/tcp (v6)              ALLOW IN    Anywhere (v6)             
2376/tcp (v6)              ALLOW IN    Anywhere (v6) 

As you see, I don't allow any connections on port 80 (http). Ok to test that firewall really works I run following docker:

sudo docker run -d -p 80:80 -e ENABLE_IPV6=true -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy:alpine

But when I go to chrome and type my droplet IP I see nginx response (!!!)

I try this also for Ubuntu 17 image (with docker installation by hand) but still get the same problem.

Conclusion: ufw firewall doesn't work at all in Ubuntu

Question: how to configure ufw/Ubuntu to fix this problem?


Solution

  • Docker and UFW don't work together too well as they both modify iptables but there's a way to fix this. You'll need to configure Docker to not use iptables. Add

    DOCKER_OPTS="--iptables=false"
    

    to /etc/default/docker and restart your host (or restart the Docker daemon and UFW).

    These two links have a lot more information about the issue:

    https://blog.viktorpetersson.com/2014/11/03/the-dangers-of-ufw-docker.html
    https://www.techrepublic.com/article/how-to-fix-the-docker-and-ufw-security-flaw/