Acesso WEB interno

Iniciado por lucascatani, 22 de Maio de 2012, 11:11

tópico anterior - próximo tópico

lucascatani

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?

zekkerj

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

lucascatani

Citação de: zekkerj online 22 de Maio de 2012, 11:30

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

zekkerj

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

lucascatani

Citação de: zekkerj 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?

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?

zekkerj

CitarNã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

lucascatani

#6
Citação de: zekkerj online 22 de Maio de 2012, 12:36
CitarNã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


lucascatani

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o $INTERFACELOCAL -j SNAT --to ???

zekkerj

... -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

lucascatani

#9
Citação de: zekkerj 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>

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?

zekkerj

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

lucascatani

#11
Citação de: zekkerj online 22 de Maio de 2012, 23:26
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.


lucascatani

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?


zekkerj

CitarFora 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

lucascatani

#14
Citação de: zekkerj online 24 de Maio de 2012, 13:05
CitarFora 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.