Estou tentando implantar um sistema usando docker compose que contém o servidor mysql. O servidor é compartilhado entre os contêineres docker na mesma rede.
Preciso acessar o banco de dados mysql de um servidor externo específico em nossa rede, então publiquei a porta mysql (3306) no arquivo docker compose.
Mas por questão de segurança quero bloquear qualquer outro ip que tente acessar esta porta.
Eu tentei muitas regras de iptables e todas elas bloquearam contêineres dentro do docker-compose ou permitiram que outros servidores acessassem a porta.
ps: Vou alterar as permissões do usuário no servidor mysql, mas bloquear a porta é a primeira coisa que queremos fazer.
Responder1
Você pode configurar as entradas iptables na tabela DOCKER-USER. Isso é feito fora do docker. Por exemplo, se você estiver preocupado com solicitações na interface eth0 para a porta 3306 de qualquer rede diferente de 10.0.0.0/24:
iptables -I DOCKER-USER -i eth0 ! -s 10.0.0.0/24 -p tcp \
-m conntrack --ctorigdstport 3306 -j DROP
Observe que conntrack
a porta de destino original da trilha de conexão é necessária em vez de uma regra de porta tcp normal para lidar com as regras NAT e o mapeamento de portas.