Fedora 32

firewalld VS docker

Avec l’arrivée de Fedora 32, il y a eu des changements sur Firewalld. En effet, ce dernier passe maintenant par nftables. Le problème, comme évoqué dans le change, c’est qu’il y a des soucis avec Docker.

Depuis ma migration sous Fedora 32, plus moyen de builder des containers car je n’arrive pas à atteindre les dépôts d’Alpine Linux:

WARNING: Ignoring http://dl-cdn.alpinelinux.org/alpine/v3.11/main/x86_64/APKINDEX.tar.gz: temporary error (try again later)

Après avoir validé que le fautif était bien Firewalld, en le désactivant, il faut maintenant donner accès à internet à mes containers. Pour cela listons d’abord mes networks:

docker network ls                           
NETWORK ID          NAME                    DRIVER              SCOPE
870340d27b56        bridge                  bridge              local
f76fdca0de0b        docker-config_default   bridge              local
84c5b4b3f98c        host                    host                local
b5ce54a9e4d3        none                    null                local

On se rend compte qu’il y a un network utilisé par ma configuration docker-compose (docker-config_default) et le network classique de Docker (bridge).

Ensuite identifions les interface utilisées:

nmcli d
DEVICE           TYPE      STATE       CONNECTION      
wlp2s0           wifi      connecté    starfleet       
br-f76fdca0de0b  bridge    connecté    br-f76fdca0de0b 
docker0          bridge    connecté    docker0         
virbr0           bridge    connecté    virbr0          
p2p-dev-wlp2s0   wifi-p2p  déconnecté  --              
vethaecb7f2      ethernet  non-géré    --              
vethd8ff84a      ethernet  non-géré    --              
vethef11a40      ethernet  non-géré    --              
lo               loopback  non-géré    --              
virbr0-nic       tun       non-géré    --  

On voit qu’en plus de la classique interface docker0, il y a une interface appelée br-f76fdca0de0b. C’est cette dernière interface qui est utilisée par docker-compose. Reste à leur donner les accès :

sudo firewall-cmd --permanent --zone=trusted --add-interface=br-f76fdca0de0b
sudo firewall-cmd --permanent --zone=trusted --add-interface=docker0
sudo firewall-cmd --reload
sudo service docker restart

Le change évoque un package docker-firewalld, mais jusqu’à présent je n’en ai trouvé aucune trace et mon fix fait le job.

Avatar de Guillaume Kulakowski

À propos de l’auteur

Commentaires

4 réponses à “firewalld VS docker”

  1. Avatar de Fred
    Fred

    Bonjour,

    J’ai eu acces a une config Raspberry Pi 4 chez Ikoula en IPV6 en preview et Docker generait des erreurs: tres lent et des timeouts pendant le build d’images. Je n’ai pas reussi a resoudre le probleme. On pense que s’etait du a IPV6, mais c’etait peut etre un probleme de firewall… Aurais-tu une idee?

    https://www.framboise314.fr/votre-raspberry-pi-4-heberge-en-datacenter-par-ikoula/
    https://www.ikoula.com/fr/raspberry-pi-4-micro-serveur

    1. Avatar de Guillaume Kulakowski

      Bonjour,

      un firewall c’est soit ça passe soit ça casse. Tu es sûr que le problème provient du réseau ? Tu as bien configuré tes DNS dans Docker ?

  2. Avatar de Nico
    Nico

    Le fix devrait arriver. https://github.com/moby/libnetwork/pull/2548
    De mon coté en ajoutant les interfaces de Docker dans la zone « trusted » je retrouve mes connections, mais les regles de blocage sont skiped. Du coup c’est comme si je n’avais pas de firewall…

    1. Avatar de Guillaume Kulakowski

      Après c’est mon portable. Mais sur un serveur serait effectivement plus problématique.

Derniers articles sur le journal

Articles à la une