From: Tom Eastep <teas...@shorewall.net> 
Sent: Samstag, 22. Februar 2020 00:20
To: shorewall-users@lists.sourceforge.net
Topic: Re: [Shorewall-users] Shorewall removes Docker iptable chain 
"DOCKER-ISOLATION-STAGE-1" on restart

> Did the firewall script get recompiled? The above output doesn't look like it 
> did. Please try:
>
>       /sbin/shorewall restart -c
>
> If that still doesn't work then please restart Docker then:
>
>       sh -x /usr/lib/shorewall/firewall reload > trace 2>&1
>
> and send me
>
>       /usr/lib/shorewall/firewall
>       The 'trace' file

Hello Tom,

I tried a couple things and it looks to me as if it preserves everything with 
"shorewall restart -c" and with "systemctl reload shorewall" but not with 
"systemctl restart shorewall".


        root@dk1:~# systemctl restart docker


        root@dk1:~# iptables -L -v | grep -i docker
                0     0 ~comb3     all  --  docker+ any     anywhere            
 anywhere
           67 20688 DOCKER-USER  all  --  any    any     anywhere             
anywhere
           67 20688 DOCKER-ISOLATION-STAGE-1  all  --  any    any     anywhere  
           anywhere
                0     0 ACCEPT     all  --  any    docker0  anywhere            
 anywhere             ctstate RELATED,ESTABLISHED
                0     0 DOCKER     all  --  any    docker0  anywhere            
 anywhere
                0     0 ACCEPT     all  --  docker0 !docker0  anywhere          
   anywhere
                0     0 ACCEPT     all  --  docker0 docker0  anywhere           
  anywhere
                0     0 DOCKER     all  --  any    br-ac3db22b180b  anywhere    
         anywhere
           54  3220 DOCKER     all  --  any    br-61206706fa14  anywhere        
     anywhere
                0     0 ~comb0     all  --  docker+ any     anywhere            
 anywhere
         1045  187K DOCKER     all  --  any    any     anywhere             
anywhere
                0     0 ACCEPT     all  --  any    docker+  anywhere            
 anywhere
        Chain DOCKER (4 references)
        Chain DOCKER-ISOLATION-STAGE-1 (1 references)
                0     0 DOCKER-ISOLATION-STAGE-2  all  --  docker0 !docker0  
anywhere             anywhere
                0     0 DOCKER-ISOLATION-STAGE-2  all  --  br-ac3db22b180b 
!br-ac3db22b180b  anywhere             anywhere
           30  5851 DOCKER-ISOLATION-STAGE-2  all  --  br-61206706fa14 
!br-61206706fa14  anywhere             anywhere
        Chain DOCKER-USER (1 references)
                0     0 ACCEPT     all  --  any    docker+  anywhere            
 anywhere
                0     0 ~comb2     all  --  any    docker+  anywhere            
 anywhere
                0     0 ~comb2     all  --  any    docker+  anywhere            
 anywhere
        Chain DOCKER-ISOLATION-STAGE-2 (3 references)
                0     0 DROP       all  --  any    docker0  anywhere            
 anywhere


        root@dk1:~# /sbin/shorewall restart -c
        Compiling using Shorewall 5.2.3.2...
        Processing /etc/shorewall/params ...
        Processing /etc/shorewall/shorewall.conf...
        Loading Modules...
        Compiling /etc/shorewall/zones...
        Compiling /etc/shorewall/interfaces...
        Determining Hosts in Zones...
        Locating Action Files...
        Compiling /etc/shorewall/policy...
        Compiling TCP Flags filtering...
        Compiling Kernel Route Filtering...
        Compiling Martian Logging...
        Compiling MAC Filtration -- Phase 1...
        Compiling /etc/shorewall/rules...
        Compiling /etc/shorewall/conntrack...
        Compiling MAC Filtration -- Phase 2...
        Applying Policies...
        Generating Rule Matrix...
        Optimizing Ruleset...
        Creating iptables-restore input...
        Shorewall configuration compiled to /var/lib/shorewall/.restart
        Stopping Shorewall....
        Preparing iptables-restore input...
        Running /sbin/iptables-restore --wait 60...
        done.
        Starting Shorewall....
        Initializing...
        Setting up Route Filtering...
        Setting up Martian Logging...
        Preparing iptables-restore input...
        Running /sbin/iptables-restore --wait 60...
        done.


It looks as if everything is fine after the "shorewall restart -c" command:

        root@dk1:~# iptables -L -v | grep -i docker
                0     0 ~comb3     all  --  docker+ any     anywhere            
 anywhere
          132 56820 DOCKER-USER  all  --  any    any     anywhere             
anywhere
          132 56820 DOCKER-ISOLATION-STAGE-1  all  --  any    any     anywhere  
           anywhere
                0     0 DOCKER     all  --  any    docker0  anywhere            
 anywhere
                0     0 ACCEPT     all  --  any    docker0  anywhere            
 anywhere             ctstate RELATED,ESTABLISHED
                0     0 ACCEPT     all  --  docker0 !docker0  anywhere          
   anywhere
                0     0 ACCEPT     all  --  docker0 docker0  anywhere           
  anywhere
                0     0 DOCKER     all  --  any    br-ac3db22b180b  anywhere    
         anywhere
                4   240 DOCKER     all  --  any    br-61206706fa14  anywhere    
         anywhere
                0     0 ~comb0     all  --  docker+ any     anywhere            
 anywhere
           33  3880 DOCKER     all  --  any    any     anywhere             
anywhere
                0     0 ACCEPT     all  --  any    docker+  anywhere            
 anywhere
        Chain DOCKER (4 references)
        Chain DOCKER-ISOLATION-STAGE-1 (1 references)
                0     0 DOCKER-ISOLATION-STAGE-2  all  --  docker0 !docker0  
anywhere             anywhere
                0     0 DOCKER-ISOLATION-STAGE-2  all  --  br-ac3db22b180b 
!br-ac3db22b180b  anywhere             anywhere
           10  2394 DOCKER-ISOLATION-STAGE-2  all  --  br-61206706fa14 
!br-61206706fa14  anywhere             anywhere
        Chain DOCKER-ISOLATION-STAGE-2 (3 references)
                0     0 DROP       all  --  any    docker0  anywhere            
 anywhere
        Chain DOCKER-USER (1 references)
                0     0 ACCEPT     all  --  any    docker+  anywhere            
 anywhere
                0     0 ~comb2     all  --  any    docker+  anywhere            
 anywhere
                0     0 ~comb2     all  --  any    docker+  anywhere            
 anywhere


If I restart the Shorewall service, then it still loses some things.

        root@dk1:~# systemctl restart shorewall


        root@dk1:~# iptables -L -v | grep -i docker
                0     0 ~comb3     all  --  docker+ any     anywhere            
 anywhere
          119 38979 DOCKER-USER  all  --  any    any     anywhere             
anywhere
          119 38979 DOCKER-ISOLATION-STAGE-1  all  --  any    any     anywhere  
           anywhere
                0     0 DOCKER     all  --  any    docker0  anywhere            
 anywhere
                0     0 ACCEPT     all  --  any    docker0  anywhere            
 anywhere             ctstate RELATED,ESTABLISHED
                0     0 ACCEPT     all  --  docker0 !docker0  anywhere          
   anywhere
                0     0 ACCEPT     all  --  docker0 docker0  anywhere           
  anywhere
                0     0 ~comb0     all  --  docker+ any     anywhere            
 anywhere
                7   808 DOCKER     all  --  any    any     anywhere             
anywhere
                0     0 ACCEPT     all  --  any    docker+  anywhere            
 anywhere
        Chain DOCKER (2 references)
        Chain DOCKER-ISOLATION-STAGE-1 (1 references)
        Chain DOCKER-ISOLATION-STAGE-2 (0 references)
        Chain DOCKER-USER (1 references)
                0     0 ACCEPT     all  --  any    docker+  anywhere            
 anywhere
                0     0 ~comb2     all  --  any    docker+  anywhere            
 anywhere
                0     0 ~comb2     all  --  any    docker+  anywhere            
 anywhere


        root@dk1:~# systemctl restart docker


        root@dk1:~# iptables -L -v | grep -i docker
                0     0 ~comb3     all  --  docker+ any     anywhere            
 anywhere
          392  163K DOCKER-USER  all  --  any    any     anywhere             
anywhere
          392  163K DOCKER-ISOLATION-STAGE-1  all  --  any    any     anywhere  
           anywhere
                0     0 ACCEPT     all  --  any    docker0  anywhere            
 anywhere             ctstate RELATED,ESTABLISHED
                0     0 DOCKER     all  --  any    docker0  anywhere            
 anywhere
                0     0 ACCEPT     all  --  docker0 !docker0  anywhere          
   anywhere
                0     0 ACCEPT     all  --  docker0 docker0  anywhere           
  anywhere
                0     0 DOCKER     all  --  any    br-ac3db22b180b  anywhere    
         anywhere
           15   868 DOCKER     all  --  any    br-61206706fa14  anywhere        
     anywhere
                0     0 ~comb0     all  --  docker+ any     anywhere            
 anywhere
          554 85844 DOCKER     all  --  any    any     anywhere             
anywhere
                0     0 ACCEPT     all  --  any    docker+  anywhere            
 anywhere
        Chain DOCKER (4 references)
        Chain DOCKER-ISOLATION-STAGE-1 (1 references)
                0     0 DOCKER-ISOLATION-STAGE-2  all  --  docker0 !docker0  
anywhere             anywhere
                0     0 DOCKER-ISOLATION-STAGE-2  all  --  br-ac3db22b180b 
!br-ac3db22b180b  anywhere             anywhere
           61 16558 DOCKER-ISOLATION-STAGE-2  all  --  br-61206706fa14 
!br-61206706fa14  anywhere             anywhere
        Chain DOCKER-USER (1 references)
                0     0 ACCEPT     all  --  any    docker+  anywhere            
 anywhere
                0     0 ~comb2     all  --  any    docker+  anywhere            
 anywhere
                0     0 ~comb2     all  --  any    docker+  anywhere            
 anywhere
        Chain DOCKER-ISOLATION-STAGE-2 (3 references)
                0     0 DROP       all  --  any    docker0  anywhere            
 anywhere


It keeps it on a reload.

        root@dk1:~# systemctl reload shorewall
        
        
        root@dk1:~# iptables -L -v | grep -i docker
                0     0 ~comb3     all  --  docker+ any     anywhere            
 anywhere
           59 14486 DOCKER-USER  all  --  any    any     anywhere             
anywhere
           59 14486 DOCKER-ISOLATION-STAGE-1  all  --  any    any     anywhere  
           anywhere
                0     0 DOCKER     all  --  any    docker0  anywhere            
 anywhere
                0     0 ACCEPT     all  --  any    docker0  anywhere            
 anywhere             ctstate RELATED,ESTABLISHED
                0     0 ACCEPT     all  --  docker0 !docker0  anywhere          
   anywhere
                0     0 ACCEPT     all  --  docker0 docker0  anywhere           
  anywhere
                0     0 DOCKER     all  --  any    br-ac3db22b180b  anywhere    
         anywhere
                4   204 DOCKER     all  --  any    br-61206706fa14  anywhere    
         anywhere
                0     0 ~comb0     all  --  docker+ any     anywhere            
 anywhere
           17  1888 DOCKER     all  --  any    any     anywhere             
anywhere
                0     0 ACCEPT     all  --  any    docker+  anywhere            
 anywhere
        Chain DOCKER (4 references)
        Chain DOCKER-ISOLATION-STAGE-1 (1 references)
                0     0 DOCKER-ISOLATION-STAGE-2  all  --  docker0 !docker0  
anywhere             anywhere
                0     0 DOCKER-ISOLATION-STAGE-2  all  --  br-ac3db22b180b 
!br-ac3db22b180b  anywhere             anywhere
           22  5605 DOCKER-ISOLATION-STAGE-2  all  --  br-61206706fa14 
!br-61206706fa14  anywhere             anywhere
        Chain DOCKER-ISOLATION-STAGE-2 (3 references)
                0     0 DROP       all  --  any    docker0  anywhere            
 anywhere
        Chain DOCKER-USER (1 references)
                0     0 ACCEPT     all  --  any    docker+  anywhere            
 anywhere
                0     0 ~comb2     all  --  any    docker+  anywhere            
 anywhere
                0     0 ~comb2     all  --  any    docker+  anywhere            
 anywhere


        root@dk1:~# systemctl restart docker

        
        root@dk1:~# /var/lib/shorewall/firewall reload > trace 2>&1


        root@dk1:~# cat trace
        Reloading Shorewall....
        done.
        
Everything looks fine after reload.

        root@dk1:~# iptables -L -v | grep -i docker
                0     0 ~comb3     all  --  docker+ any     anywhere            
 anywhere
          769  364K DOCKER-USER  all  --  any    any     anywhere             
anywhere
          769  364K DOCKER-ISOLATION-STAGE-1  all  --  any    any     anywhere  
           anywhere
                0     0 DOCKER     all  --  any    docker0  anywhere            
 anywhere
                0     0 ACCEPT     all  --  any    docker0  anywhere            
 anywhere             ctstate RELATED,ESTABLISHED
                0     0 ACCEPT     all  --  docker0 !docker0  anywhere          
   anywhere
                0     0 ACCEPT     all  --  docker0 docker0  anywhere           
  anywhere
                0     0 DOCKER     all  --  any    br-ac3db22b180b  anywhere    
         anywhere
           24  1424 DOCKER     all  --  any    br-61206706fa14  anywhere        
     anywhere
                0     0 ~comb0     all  --  docker+ any     anywhere            
 anywhere
           77 10905 DOCKER     all  --  any    any     anywhere             
anywhere
                0     0 ACCEPT     all  --  any    docker+  anywhere            
 anywhere
        Chain DOCKER (4 references)
        Chain DOCKER-ISOLATION-STAGE-1 (1 references)
                0     0 DOCKER-ISOLATION-STAGE-2  all  --  docker0 !docker0  
anywhere             anywhere
                0     0 DOCKER-ISOLATION-STAGE-2  all  --  br-ac3db22b180b 
!br-ac3db22b180b  anywhere             anywhere
           68 29638 DOCKER-ISOLATION-STAGE-2  all  --  br-61206706fa14 
!br-61206706fa14  anywhere             anywhere
        Chain DOCKER-ISOLATION-STAGE-2 (3 references)
                0     0 DROP       all  --  any    docker0  anywhere            
 anywhere
        Chain DOCKER-USER (1 references)
                0     0 ACCEPT     all  --  any    docker+  anywhere            
 anywhere
                0     0 ~comb2     all  --  any    docker+  anywhere            
 anywhere
                0     0 ~comb2     all  --  any    docker+  anywhere            
 anywhere


        root@dk1:~# systemctl restart docker

        root@dk1:~# iptables-save > iptables.save.after.docker.restart

        root@dk1:~# systemctl reload shorewall.service

        root@dk1:~# iptables-save > iptables.save.after.shorewall.reload

        root@dk1:~# systemctl restart shorewall.service

        root@dk1:~# iptables-save > iptables.save.after.shorewall.restart       


I am wondering how it comes to this different behavior on restart and reload.

Thank you for your effort,
Michael


Attachment: iptables.tar.bz2
Description: iptables.tar.bz2

_______________________________________________
Shorewall-users mailing list
Shorewall-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/shorewall-users

Reply via email to