Requisitos: Um sistema privado de álbum doméstico foi construído usando containers Docker, que é limitado ao acesso e visualização na LAN doméstica, porque a imagem Docker é desenvolvida por um desenvolvedor terceirizado, e não sei se será uma situação de segurançaGerar violações de privacidadePara resolver melhor esse problema, queremos adicionar uma garantia de privacidade proibindo que contêineres Docker acessem a Internet (rede externa).
Este artigo utiliza um sistema CentOS7, versão Docker: 20.10.20, e utiliza imagens nginx para fornecer testes.
O acesso à Internet (extranet) é permitido por padrão
Crie um novo contêiner nginx que forneça serviços web acessíveis por18080 Acesso à porta, o contêiner pode acessar a Internet (rede externa) por padrão, o comando é o seguinte:
Insira o container e solicite os recursos deste site pelo comando curl, que pode ser obtido normalmente, como mostrado na figura abaixo:
Desabilitando containers Docker do acesso à internet (extranet)
Primeiro, precisamos criar uma rede personalizada via docker e criar uma placa de rede virtual, com o seguinte comando:
Defina uma regra na NIC virtual através do iptables para proibir o acesso à Internet com o seguinte comando:
Independentemente de o serviço iptables estar disponível ou não, independentemente de o firewall estar ativado ou não,As regras do iptables adicionadas por comando entram em vigor imediatamente!!!
Nota: Este plano é apropriadoSe diferentes contêineres se juntarem à mesma rede, eles não conseguirão se comunicar entre si!!!!
Veja a regra DOCKER-USER mostrada abaixo:
Crie novamente um novo contêiner nginx, o contêiner fornece o serviço web, e o18081 A porta oferece serviços ao mundo exterior, e o contêiner é proibido de acessar a Internet (rede pública), o comando é o seguinte:
Alcançamos nosso objetivo, mas,Após reiniciar o servidor, as regras que criamos no iptables desaparecemComo podemos carregar automaticamente nossas regras personalizadas depois que o servidor for reiniciado?
O comando iptables-save é usado para exportar a tabela iptables no kernel Linux para um fornecedor padrão de saída, geralmente usando a função de redirecionamento de E/S no shell para salvar sua saída em um arquivo especificado. Salvar a regra iptables existente
Adicione a regra de restauração iptables ao boot de boot, o arquivo de boot seja /etc/rc.d/rc.local, edite o arquivo e adicione o seguinte comando no final:
Por fim, adicione a permissão de execução com o seguinte comando:
Após as configurações serem concluídas, as regras do iptables continuarão em vigor mesmo que o servidor seja reiniciado.
Todos os containers no Docker são proibidos de acessar a Internet (extranet),Não testado, o comando é o seguinte:
(Fim)
|