Encaminhar o tráfego de entrada do cliente no host para o contêiner

0

Eu uso o Ubuntu 16.04 agora mesmo.

Eu tenho um pequeno escritório agora. No passado, o tráfego era assim:

CLIENT --- SERVER --- ROUTER --- INTERNET

Eu configurei a rede assim:

  1. Eu tenho uma página de login. Se o cliente não entrou na rede, o cliente será redirecionado para a página de login primeiro.
  2. Se o sucesso do login, eu criar iptables que permitem que o cliente acesse internet

Então, exemplo como este:
Cliente IP: 192.168.99.0/24
Servidor IP: 192.168.0.15
Login de Página de IP: 192.168.0.2 na porta 4000 (eu uso o aplicativo de frasco)

Primeiro o que eu faço é configurar o iptables que redireciona todo o cliente para a página de login:

iptables -I FORWARD 1 192.168.99.0/24 -J REJECT
iptables -I FORWARD 1 -s 192.168.99.0/24 -d 192.168.0.2 --dport 4000 -j ACCEPT
iptables -t nat -I PREROUTING 1 -p tcp -s 192.168.99.0/24 --dport 80 -j DNAT --to 192.168.0.2:4000

Do que, se o cliente abrir o website (qualquer coisa), o cliente será redirecionado para a página de login primeiro. Se o sucesso do login, eu criar uma nova regra: exemplo: IP CLIENT: 192.168.99.100

iptables -I FORWARD 1 -s 192.168.99.100 -j ACCEPT
iptables -t nat -I PREROUTING -s 192.168.99.100 -j ACCEPT
iptables -t nat -I POSTROUTING 1 -o wlp3s0 -j MASQUERADE -s 192.168.99.100

Isso é trabalho! O cliente pode acessar a internet. E agora, eu quero mudar o tráfego, assim:

CLIENT --- SERVER --- CONTAINER --- SERVER --- ROUTER --- INTERNET

Eu uso o contêiner docker, dentro do servidor. Ou talvez se você quiser ver a imagem assim: Image . Desculpe eu não sei porque eu não posso fazer upload de imagem neste

Então eu quero fazer 1 cliente ter 1 contêiner. Então, se houver 3 clientes, existem 3 contêineres também. Eu fiz isso porque torna mais fácil registrar o tráfego do cliente.

Então, minha pergunta é:

  1. Posso usar o IPTABLES para esse problema?
  2. Posso rotear apenas um IP específico do cliente para um contêiner IP específico?

Ou a melhor maneira de fazer isso?
Obrigado askubuntu!

    
por semangatTA 04.05.2018 / 05:42

0 respostas