Re: Problems accessing host from docker container running on host

Matt Darfeuille <[email protected]> Wed, 19 Mar 2025 20:19:14 +0100
Newsgroups gmane.comp.security.shorewall
Message-ID <[email protected]>
On 3/19/25 10:49, Sean Murphy via Shorewall-users wrote:
> Hi all,,
> 
> We have been (ab)using shorewall for some years now and we're v happy with it -
> thanks everyone and Tom in particular for such a great tool.
> 
> We have been using it to manage security for a set of VMs running applications
> with docker-compose. Almost all of our hosts have a single external network
> interface; this is perhaps not the use case for which shorewall was designed
> but it has been working for us so far.
> 
> We now have a scenario which is proving more difficult: we want to access a
> service running on a host from within a container.
> 
> We have tried the most open configuration possible - a policy with all:all
> ACCEPT and no rules; it seems the service is accessible from anywhere except
> inside the docker container.
> 
> Accessing the service from inside the container results in timeouts, so presumably
> the packets are being dropped somewhere. We tried ping, ssh (on standard ports)
> and an http service running on a high port number.
> 
> Zone configuration:
> root@dhit-disposable01:/etc/shorewall# cat zones
> ###############################################################################
> #ZONE           TYPE      OPTIONS                 IN                      OUT
> #                                                 OPTIONS                 OPTIONS
> fw              firewall
> net             ipv4
> dock            ipv4
> 
> Interface configuration:
> root@dhit-disposable01:/etc/shorewall# cat interfaces
> ###############################################################################
> ?FORMAT 2
> ###############################################################################
> #ZONE   INTERFACE                 OPTIONS
> net     eth                       physical=eth+,dhcp,nosmurfs
> net     en                        physical=en+,dhcp,nosmurfs
> dock    docker0                   physical=docker+,routeback=1
> dock    br                        physical=br-+,routeback=1
> 
> Policy configuration:
> root@dhit-disposable01:/etc/shorewall# cat policy
> #SOURCE        DEST        POLICY      LOGLEVEL    LIMIT
> all            all         ACCEPT
> 
> Rules configuration:
> root@dhit-disposable01:/etc/shorewall# cat rules
> #ACTION      SOURCE                  DEST       PROTO      DPORT
> # No rules
> 
> Docker configuration as per shorewall.conf
> root@dhit-disposable01:/etc/shorewall# grep -i docker shorewall.conf
> # Default shorewall config, except for DOCKER=Yes (and this comment).
> DOCKER=Yes
> DOCKER_BRIDGE=docker0
> 
> I did shorewall compile, safe-reload and then restarted the docker deamon but
> the packets still seem to be being dropped. I tried iptables-tracer [1] to get some
> info on where they disappear and it seems packets are being dropped on the
> return path.

If you do a `shorewall clear`, does it work at all?


Note that the project is unmaintained.

-- 
Matt Darfeuille <[email protected]>
Unmaintained project, no more releases or bug fixes
Community: https://sourceforge.net/p/shorewall/mailman/message/37107049/