túnel SSH com instância do PHP do Docker

1

O que estou tentando fazer é ter o MySQL detectável por todas as instâncias do docker e localhost em um servidor remoto, mas bloquear o MySQL de comunicação externa exceto um endereço IP específico (meu IP de origem) ou através de um túnel SSH.

Descobri recentemente que, no arquivo docker-compose.yml , você pode especificar na seção ports o seguinte:

mysql: image: mysql:5.7 ports: - "127.0.0.1:3306:3306"

No entanto, isso significa apenas que está disponível para o host local e não pode ser usado por nenhuma outra interface.

Você pode perguntar "Bem, por que você simplesmente não usa SSH Tunnel?" Bem, isso é uma solução certa para conectar-se à instância do docker diretamente no remoto, no entanto, não posso permitir que meus contêineres locais de docker usem essa porta encapsulada, especificamente um contêiner do PHP 7.1. / p>

Eu também tentei alterar o IPTables para ignorar todas as comunicações externas na porta 3306, mas por algum motivo ele ainda está aberto.

Eu tenho Putty configurado para a porta do túnel 3306 no remoto para a porta 10000 no local. O MySQL Workbench pode acessá-lo em 10000 como o normal, então o túnel está funcionando.

Basicamente, meu objetivo aqui é permitir que um aplicativo no meu localhost acesse o banco de dados remoto, mas não abra o remote para efetivamente bind 0.0.0.0 , pois isso é terrivelmente inseguro, e entendo que a melhor maneira de acessar o MySQL é através de túneis diretamente para a caixa sobre SSH.

Procurei que minha janela de encaixe local tentasse usar o IP do host, expose_hosts para o docker-compose, todos os tipos. Batendo minha cabeça contra uma parede aqui.

    
por Matt Cavanagh 27.06.2017 / 00:30

1 resposta

0

Acredito que no seu computador local, você precisa vincular o tunel à sua interface de rede do docker, não ao localhost ou 0.0.0.0. Isso permitirá que você use essa porta de containers sem abri-la externamente.

No meu computador, minha interface de encaixe ( docker0 ) tem o endereço 172.17.0.1 , então eu tentaria vincular a esse endereço e, em seguida, conectar-me a esse endereço do contêiner.

    
por 05.03.2018 / 15:28