TL; DR tentando mascarar tudo, desde Docker
com firewalld
manualmente.
Eu apenas comecei a usar firewalld
na minha máquina Debian 10 desde que eu quero aprender como funciona.
Eu tenho Docker
instalado no host e quero gerenciar o firewall sozinho para saber mais sobre o que o Docker faz, quais regras etc. aplica-se quando os contêineres são criados e como o firewalld funciona.
Como o Debian 10 usa nftables
por padrão e usar algum tipo de iptables
wrapper para poder usar iptables
comandos para criar regras de firewall. Docker
funciona muito bem quando --iptables
está ativado.
No entanto, eu quero usar firewalld
com nftables
backend e pular tudo o que tem a ver com iptables
já que é apenas confuso. Então em /etc/systemd/system/multi-user.target.wants/docker.service
Eu adicionei --iptables=false
portanto, o Docker não mexe com o firewall.Eu corei todas as regras iptables etc. e tudo é bom até agora.
Agora para o meu problema.
Todos os contêineres podem acessar o host e uns aos outros, mas não a internet.Como todos eles estão sendo executados em 172.17.0.0/16 e meu host está em 192.168.9.0 / 24, preciso mascarar o tráfego dos contêineres.
Não consigo encontrar muitas informações sobre como gerenciar o firewall manualmente ao usar o Docker e, como sou novo no firewalld, estou apenas supondo.
Minhas interfaces são as seguintes:
eno1 (main interface)docker0 (docker bridge)veth******* (one for each container)
todos os veth
as interfaces estão no docker0
ponte.
Então eu pensei que poderia criar uma nova zona chamada docker
e mascarar tudo, desde o docker0
ponte.
~# firewall-cmd --permanent --new-zone=docker~# firewall-cmd --permanent --zone=docker --change-interface=docker0~# firewall-cmd --permanent --zone=docker --add-rich-rule='rule family="ipv4" source address=172.17.0.0/16 masquerade'~# firewall-cmd --reload
Listar as zonas ativas me dá isso:
~# firewall-cmd --get-active-zonesdocker interfaces: docker0public interfaces: eno1
Ainda não consigo acessar a internet a partir dos contêineres.Não tenho ideia se esse é o caminho certo ou o que estou perdendo.Qualquer ajuda é apreciada.