Autor Tópico: Acesso WEB interno  (Lida 22768 vezes)

Offline lucascatani

  • Usuário Ubuntu
  • *
  • Mensagens: 277
    • Ver perfil
    • L9WEB
Acesso WEB interno
« Online: 22 de Maio de 2012, 11:11 »
Tenho um ip profissional ligado ao meu firewall: IP: 189.11.189.11
Na rede internet um servidor web com o ip 192.168.0.214 na porta 8181.

Problema:
"fora da rede" eu acesso sem problemas pelo endereço 189.11.189.11:8181

Gostaria de poder acessar pelo mesmo endereço da rede interna.

Alguma solução?

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: Acesso WEB interno
« Resposta #1 Online: 22 de Maio de 2012, 11:30 »
Vc está fazendo redirecionamento do IP da rede externa para a rede interna, correto?

O que acontece é que quando uma máquina da rede interna tenta acessar esse servidor, o pacote tem endereço de destino externo, e endereço de origem interno. Esses pacotes batem no roteador e são redirecionados, passando a ter endereço de destino interno.

Quando o servidor recebe esse pacote, ele vê o endereço de destino interno, e responde diretamente à origem, com o seu endereço interno. Só que a origem estranha, pois abriu uma conexão pra 189.11.189.11, e não pra 192.168.0.214. Resultado, a origem descarta o pacote.

Pra isso não acontecer, o servidor não pode responder diretamente à origem. O pacote tem que passar pelo roteador, pra que ele possa desfazer a troca de endereços.

Tem 3 soluções pra isso:
1. Redirecionar a origem do pacote pro IP do roteador/firewall. Isso faz com que o servidor responda pro roteador, em vez de responder diretamente à origem. Assim, o roteador tem a chance de destrocar os endereços, fazendo com que o pacote volte à origem com os endereços corretos.
A desvantagem desse método é que todos os acessos vão parecer estar vindo do roteador, inutilizando seu log de acesso.

2. Colocar o servidor numa sub-rede separada --- uma DMZ, por exemplo. Assim o pacote vai ter que voltar pro roteador, pra voltar pra rede interna.

3. Usar seu servidor DNS interno pra responder endereços diferentes pra quem acessa de dentro e de fora da sua rede. Assim vc pode acessar o servidor usando o endereço interno.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Offline lucascatani

  • Usuário Ubuntu
  • *
  • Mensagens: 277
    • Ver perfil
    • L9WEB
Re: Acesso WEB interno
« Resposta #2 Online: 22 de Maio de 2012, 12:03 »

1. Redirecionar a origem do pacote pro IP do roteador/firewall. Isso faz com que o servidor responda pro roteador, em vez de responder diretamente à origem. Assim, o roteador tem a chance de destrocar os endereços, fazendo com que o pacote volte à origem com os endereços corretos.
A desvantagem desse método é que todos os acessos vão parecer estar vindo do roteador, inutilizando seu log de acesso.


Para minha situação, a única solução viável é essa, a 1. Sem querer abusar, como eu faço?

Desde já agradeço

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: Acesso WEB interno
« Resposta #3 Online: 22 de Maio de 2012, 12:15 »
Tem que adicionar uma regra de SNAT ao seu firewall.

PS: Levou em conta a situação de perder o log de acesso ao servidor?
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Offline lucascatani

  • Usuário Ubuntu
  • *
  • Mensagens: 277
    • Ver perfil
    • L9WEB
Re: Acesso WEB interno
« Resposta #4 Online: 22 de Maio de 2012, 12:19 »
Tem que adicionar uma regra de SNAT ao seu firewall.

PS: Levou em conta a situação de perder o log de acesso ao servidor?

Não tem como eu fazer algo para quando a requisição for proveniente da rede interna redirecionar para o ip do servidor web?

Como fica a regra usando o snat?

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: Acesso WEB interno
« Resposta #5 Online: 22 de Maio de 2012, 12:36 »
Citar
Não tem como eu fazer algo para quando a requisição for proveniente da rede interna redirecionar para o ip do servidor web?
É assim que vc vai fazer. Mas todos os acessos da rede interna vão aparecer como se viessem do firewall.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Offline lucascatani

  • Usuário Ubuntu
  • *
  • Mensagens: 277
    • Ver perfil
    • L9WEB
Re: Acesso WEB interno
« Resposta #6 Online: 22 de Maio de 2012, 12:41 »
Citar
Não tem como eu fazer algo para quando a requisição for proveniente da rede interna redirecionar para o ip do servidor web?
É assim que vc vai fazer. Mas todos os acessos da rede interna vão aparecer como se viessem do firewall.

Isso mesmo, sem problemas... Se puder me dar uma mão no script agradeço! Abraço

« Última modificação: 22 de Maio de 2012, 19:53 por lucascatani »

Offline lucascatani

  • Usuário Ubuntu
  • *
  • Mensagens: 277
    • Ver perfil
    • L9WEB
Re: Acesso WEB interno
« Resposta #7 Online: 22 de Maio de 2012, 19:52 »
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o $INTERFACELOCAL -j SNAT --to ???

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: Acesso WEB interno
« Resposta #8 Online: 22 de Maio de 2012, 23:06 »
... -d <ip publico> --dport <porta do serviço> -j SNAT --to <ip do servidor na rede interna>
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Offline lucascatani

  • Usuário Ubuntu
  • *
  • Mensagens: 277
    • Ver perfil
    • L9WEB
Re: Acesso WEB interno
« Resposta #9 Online: 22 de Maio de 2012, 23:20 »
... -d <ip publico> --dport <porta do serviço> -j SNAT --to <ip do servidor na rede interna>

iptables -t nat POSTROUTING -d 189.11.189.11 -s 192.168.0.0/24 -p tcp --dport 8181 -j SNAT --to 192.168.0.214

isso?
« Última modificação: 22 de Maio de 2012, 23:28 por lucascatani »

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: Acesso WEB interno
« Resposta #10 Online: 22 de Maio de 2012, 23:26 »
quase, só faltou amarrar com a origem na rede interna (-s 192.168.0.0/24).
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Offline lucascatani

  • Usuário Ubuntu
  • *
  • Mensagens: 277
    • Ver perfil
    • L9WEB
Re: Acesso WEB interno
« Resposta #11 Online: 22 de Maio de 2012, 23:29 »
quase, só faltou amarrar com a origem na rede interna (-s 192.168.0.0/24).

Muito obrigado Zekkerj, tem me ajudado muito ultimamente. Testei agora, mas não deu certo.

« Última modificação: 24 de Maio de 2012, 12:47 por lucascatani »

Offline lucascatani

  • Usuário Ubuntu
  • *
  • Mensagens: 277
    • Ver perfil
    • L9WEB
Re: Acesso WEB interno
« Resposta #12 Online: 24 de Maio de 2012, 12:47 »
Fora do proxy funciona... deve ser o squid... como libero no squid?

o erro que da no squid connection refused (erro 111)


Sobre a regra de postrouting,....


iptables -t nat -A POSTROUTING -d 189.11.189.11 -s 192.168.0.0 -p tcp --dport 8181 -j SNAT --to 192.168.0.214

Nao preciso criar uma regra de pre-routing também?


Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: Acesso WEB interno
« Resposta #13 Online: 24 de Maio de 2012, 13:05 »
Citar
Fora do proxy funciona... deve ser o squid... como libero no squid?
Coloque como exceção no WPAD.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Offline lucascatani

  • Usuário Ubuntu
  • *
  • Mensagens: 277
    • Ver perfil
    • L9WEB
Re: Acesso WEB interno
« Resposta #14 Online: 24 de Maio de 2012, 17:40 »
Citar
Fora do proxy funciona... deve ser o squid... como libero no squid?
Coloque como exceção no WPAD.

Boa... vou fazer... só não sei como...

Por questão de aprendizado. No squid, como eu faria.
« Última modificação: 24 de Maio de 2012, 17:44 por lucascatani »