Redirecionando uma URL externa para um servidor interno

1. Redirecionando uma URL externa para um servidor interno

Fernando Henrique
fexdelux

(usa Ubuntu)

Enviado em 18/05/2010 - 18:45h

Pessoal,
Sou novo no grupo e estou com uma duvida em relação de como fazer um redirecionamento de uma URL para um servidor na minha rede.
Como eu tenho IP limitado estou com a ideia de colocar alguns serviço ultilizando o CNAME do DNS.
Ex:
services.fornet.com.br => 200.200.10.104
ftp.services.fornet.com.br => services.fornet.com.br(CNAME) => Serv Interno 10.0.0.10
web.services.fornet.com.br => services.fornet.com.br(CNAME) => Serv Interno 10.0.0.21

Estou testando uma forma de redirecionar pelo modulo String:
iptables -t nat -A PREROUTING -d 200.200.10.104 -p tcp --dport 21 -m string --to 70 --algo bm --string "ftp.services.fornet.com.br" -j DNAT --to-destination 10.0.0.10:21

iptables -t nat -A PREROUTING -d 200.200.10.104 -p tcp --dport 80 -m string --to 70 --algo bm --string "web.services.fornet.com.br" -j DNAT --to-destination 10.0.0.10:80

Mais não funciona.
O meu servidor de DNS é externo (Provedor).
Alguem tem ideia de como posso fazer isso?



  


2. Re: Redirecionando uma URL externa para um servidor interno

Jefferson Diego
Diede

(usa Debian)

Enviado em 18/05/2010 - 18:48h

Ideia? use o bind9 (Servidor DNS).
Você criaria uma zona "fornet.com.br" e poderia definir os hosts tranquilimente nele, com os IP's que fossem necessários...


3. Re: Redirecionando uma URL externa para um servidor interno

Fernando Henrique
fexdelux

(usa Ubuntu)

Enviado em 19/05/2010 - 11:30h

Mesmo sendo o meu servidor de DNS no provedor eu posso fazer isso com o Bind?
Ou tem que colocar os servidores de DNS com o registro.br apontando na minha rede?



4. Re: Redirecionando uma URL externa para um servidor interno

Jefferson Diego
Diede

(usa Debian)

Enviado em 19/05/2010 - 13:12h

Como seus endereços apontam para IP's privados, use o Bind9 mesmo.
Você o usará no caso como "complemento": Ele irá resolver a zona fornet.com.br e todo o resto fica por conta do DNS do provedor (por exemplo, se você definir apenas esses 3 hosts que citou e tentar por exemplo acessar mail.services.fornet.com.br, o DNS do provedor será contactado através do seu Bind).


5. Re: Redirecionando uma URL externa para um servidor interno

Fernando Henrique
fexdelux

(usa Ubuntu)

Enviado em 20/05/2010 - 09:52h

Diede,
comprei sua ideia mais infelizmente o meu provedor de DNS, de acordo com as configuração deles, não e possivel colocar o "DNS complementar" na minha rede.
Tem alguma forma de identificar, no iptables, a url da requisição de um usuario externo da minha rede para dentro da minha rede?
Se tem, qual o caminha das pedras?


6. Re: Redirecionando uma URL externa para um servidor interno

Jefferson Diego
Diede

(usa Debian)

Enviado em 22/05/2010 - 12:56h

Ok, fexdelux, pela sua resposta, creio que não compreendi corretamente sua dúvida.
O que você quer é acessar os servers internos da sua rede externamente, ou acessá-los internamente?
Digo, pelas suas configurações, "ftp.services.fornet.com.br" é o 10.0.0.10.
Você quer que seus usuários internos da sua rede, ao acessar http://ftp.services.fornet.com.br caiam no 10.0.0.10, ou por exemplo que um usuário externo, acessando via web de outro lugar digite ftp.services.fornet.com.br e caia na sua rede?

Pergunto isso por você ter mencionado que pelo seu provedor não é possível um "DNS complementar", mas o fato é que se o que você quer é apenas redirecionar internamente sua resolução de nomes, ainda sim seriam feitas apenas requisições padrões ao seu DNS atual. Seu bind interno entraria manipulando alguns endereços, e o que ele não soubesse resolver seria consultado ao DNS do seu provedor...


7. Re: Redirecionando uma URL externa para um servidor interno

Fernando Henrique
fexdelux

(usa Ubuntu)

Enviado em 24/05/2010 - 14:40h

Diede,
são os meus usuários externos que acessa os servidores internos.


8. Re: Redirecionando uma URL externa para um servidor interno

Jefferson Diego
Diede

(usa Debian)

Enviado em 26/05/2010 - 15:39h

Ok, se a ideia é que usuários externos acessem servidores internos isso não pode ser feito dessa forma, já que os IP's 10.x.x.x/8 são privados.
Agora entendi o porquê de suas regras DNAT iniciais...

O que você poderia fazer é fazer portforward das portas 21 (10.0.0.10) e 80 (10.0.0.21) para você, e então resolvê-las com seu IP externo:


(Considerando que seu IP é 200.200.10.104)
iptables -t nat -A PREROUTING -d 200.200.10.104/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.0.0.10:80
iptables -t nat -A POSTROUTING -d 10.0.0.10/32 -p tcp -m tcp --dport 80 -j SNAT --to-source 200.200.10.104
iptables -A FORWARD -d 10.0.0.10/32 -j ACCEPT

modprobe ip_conntrack_ftp
modprobe ip_nat_ftp

iptables -t nat -A PREROUTING -d 200.200.10.104/32 -p tcp -m tcp --dport 21 -j DNAT --to-destination 10.0.0.10:21
iptables -t nat -A POSTROUTING -d 10.0.0.10/32 -p tcp -m tcp --dport 21 -j SNAT --to-source 200.200.10.104
iptables -A FORWARD -d 10.0.0.10/32 -j ACCEPT

iptables -t nat -A PREROUTING -d 200.200.10.104/32 -p tcp -m tcp --dport 20 -j DNAT --to-destination 10.0.0.10:20
iptables -t nat -A POSTROUTING -d 10.0.0.10/32 -p tcp -m tcp --dport 20 -j SNAT --to-source 200.200.10.104
iptables -A FORWARD -d 10.0.0.10/32 -j ACCEPT


No caso, em seu DNS os ftp.services.fornet.com.br e web.services.fornet.com.br ficariam mesmo como CNAME, ou seja, ambos 200.200.10.104


9. redirecionamento interno

Marllus
marlluslustosa

(usa Slackware)

Enviado em 02/04/2013 - 12:33h

Diede, e se eu quisesse que meus clientes, ao acessarem, por exemplo, www.site.com.br caíssem em um ip interno, ex 192.168.0.10:80, daria certo de fazer via iptables?

Tipo com um comando:

$IPTABLES -t nat -A PREROUTING -p tcp -d www.site.com.br -j DNAT --to-destination 192.168.0.10:80

Pergunto isso porque estou tentando implementar essa política e não estou obtendo sucesso.
Já tentei colocando como destino o ip do site e também nada.

E respondendo a pergunta do fexdelux:
Com o módulo string não da pra redirecionar internamente, porque o iptables só vai sniffar o pacote, baseado na comparação do cabeçalho com o especificado no parâmetro string, quando a conexão TCP (SYN, SYN/ACK, e ACK) já estiver estabelecida, ou seja, não tem como você redirecionar esse conteúdo porque a conexão já foi previamente estabelecida.


10. Re: Redirecionando uma URL externa para um servidor interno

Buckminster
Buckminster

(usa Debian)

Enviado em 02/04/2013 - 13:49h

fexdelux escreveu:

Diede,
são os meus usuários externos que acessa os servidores internos.


Se você deseja redirecionar solicitações de URL você pode usar o Apache com mod_proxy.

No iptables seria mais ou menos assim:

Se o seu Apache roda na porta 80, então defina tudo que for para 8080 para que seja seja redirecionado para o servidor http da sua rede interna:

iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to ip_rede_interna:80
iptables -A FORWARD -p tcp --dport 8080 -j ACCEPT
# Liberando a volta destes para a internet
iptables -t nat -A PREROUTING -s ip_rede_interna -p tcp --sport 80 -j ACCEPT
iptables -A FORWARD -s ip_rede_interna -p tcp --sport 80 -j ACCEPT

Desta forma ficaria assim:

Seu site:
meusite.com.br

Acessar conteudo interno
meusite.com.br:8080

Só tenha cuidado onde colocar as regras.
Mas não sei se é isso que você quer. Redirecionamento direto usando urls o iptables não faz.
Veja o manual traduzido do iptables:
http://www.vivaolinux.com.br/artigo/Manual-do-IPtables-Comentarios-e-sugestoes-de-regras/?pagina=1


11. Re: Redirecionando uma URL externa para um servidor interno

Jefferson Diego
Diede

(usa Debian)

Enviado em 02/04/2013 - 14:10h

Olá marllus_777,

Sua regra está correta. Você só precisa tomar 2 cuidados:
1. O gateway da 192.168.0.10 deverá ser o Firewall que está direcionando a porta.
2. Deverá ser permitido o forward à 192.168.0.10 ($IPTABLES -A FORWARD -p tcp -d 192.168.0.10 --dport 80 -j ACCEPT)


12. Redirecionando uma URL externa para um servidor interno

Luciano Torres
lucianotorres

(usa Debian)

Enviado em 07/02/2015 - 17:46h

Boa tarde pessoal! Estou com o mesmo problema do fexdelux. Estou tentando implementar uma regra no iptables para que, qualquer máquina da minha rede interna que acessar o site http://200.200.200.200/sistemabeltrano seja redirecionado para o ip interno 192.168.1.2/sistemabeltrano.

Lembrando que, o IP 200.200.200.200 é um IP válido e o IP 192.168.1.2 é o IP da rede interna.

Temos um servidor com duas placas de rede. Uma com o IP válido e a outra com o IP da rede interna e o servidor tem o serviço de web com um sistema de matrícula, lançamento de frequência e notas para alunos e professores acessarem de casa. Ou seja, os professores podem acessar fora da rede interna.

O meu objetivo é que, ao chegar no colégio e os professores se conectarem na rede interna, ao acessar o sistema pelo o endereço http://200.200.200.200/sistemabeltrano, o iptables redirecione o acesso para 192.168.1.2/sistemabeltrano. Com isso, não ocuparia o link da internet.

Eu conseguir fazer o redirecionar do site http://200.200.200.200/sistemabeltrano para outro site como por exemplo, www.vivaolinux.com.br. Mas quando tento trocar o http://200.200.200.200/sistemabeltrano para o portal da rede interna 192.168.1.2/sistemabeltrano não funciona.

Quem puder me ajudar eu agradeço muito!



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts