DNAT com FQDN/Hostname

1. DNAT com FQDN/Hostname

Mário Silva
tekknova

(usa Red Hat)

Enviado em 12/08/2010 - 09:15h

Boas!
Preciso resolver urgentemente uma questão. Tenho um IP público e dois servidores web diferentes na rede interna. Como, através do iptables, posso fazer para que requests vindos da internet para www.xxxx.com vão para um server e requests para www.yyyy.com vão para outro server?
Ex:
-A PREROUTING -d www.xxxx.com -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.24:80
-A PREROUTING -d www.yyyy.com -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.68:80

É possivel trabalhar com nomes de host/FQDN??

Obrigado




  


2. Dnat

Perfil removido
removido

(usa Nenhuma)

Enviado em 12/08/2010 - 11:01h

Se são dois servidores, simplesmente bloqueia nos iptables as requisições de www.xxxx.com numa máquina e www.yyyy.com noutra máquina.


3. Re: DNAT com FQDN/Hostname

Mário Silva
tekknova

(usa Red Hat)

Enviado em 12/08/2010 - 11:56h

Não entendi. Bloquear requisições? Queria saber é como através do iptables ( que é o meu firewall que separa a internet da rede local ) direciono os requests de internet www.xxxx.com para o servidor x e www.yyyy.com para o servidor y. Só tenho um ip publico.




4. Dnat.

Perfil removido
removido

(usa Nenhuma)

Enviado em 12/08/2010 - 12:03h

Ok. Diga-me como está estruturada sua rede: quantos e quais servidores você tem; por onde e como a internet chega até suas redes internas, por exemplo: o link chega através do roteador, passa pelo teu servidor com iptables que distribui a internet para as redes internas, etc... etc...


5. Re: DNAT com FQDN/Hostname

Davi Ribeiro
dastyler

(usa Fedora)

Enviado em 12/08/2010 - 12:18h

Se voce jogar o nome do site no lugar dos endereços IP nao resolveria a questão?
Digo porque já fiz isso no iptables e funcionou OK.
Só é importante lembrar que voce tem que deixar a inicialização do iptables APÒS a subida da rede, pois é capaz de sua máquina/router não encontrar o nome das maquinas, ou criar um script separado do seu firewall para subir apenas a regra do NAT que se aplica neste caso.

Exemplo segundo a sua regra:

-A PREROUTING -d www.xxxx.com -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination www.aaaa.com:80

[]´s





6. Re: DNAT com FQDN/Hostname

Mário Silva
tekknova

(usa Red Hat)

Enviado em 12/08/2010 - 12:35h

É assim:

A box com iptables é também o router ou seja, a internet vem dar directo ao computador que corre o iptables. Esse mesmo computador tem duas placas ( uma que recebe o sinal da internet e outra para a rede local ).Esse computador só tem um ip publico do ISP e outro da rede local. Dentro da minha rede local eu tenho dois servidores web distintos e com nomes diferentes ( 192.168.1.24 que é o www1.teste.com e o 192.168.1.68 que é o www2.teste.com ). O www1 e www2 através da internet são resolvidos para esse mesmo ip publico e único que tenho. O router ( box com iptables ) deverá ser capaz de, ao receber requests para www1.teste.com redireccionar para 192.168.1.24 e para www2.teste.com para 192.168.1.68. Tudo usando porta 80.


7. Dnat.

Perfil removido
removido

(usa Nenhuma)

Enviado em 12/08/2010 - 13:34h

Desculpe a demora. É que deu uma queda de energia aqui.
No box com Iptables:
-A PREROUTING -d www1.teste.com -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to 192.168.1.24:80
-A PREROUTING -d www2.teste.com -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to 192.168.1.68:80
Lembrando que, lógico, você deve fixar os IPs dos servidores. Ou pode usar a regra da dastyler aí de cima.

Em cada um dos servidores web coloca essa regra no firewall:
-A INPUT -p tcp --dport 80 -i ethx -j ACCEPT (essa regra abre a porta 80 do servidor web na interface ethx(0 ou 1). Mas veja bem: você deve implementar algumas regras de segurança nos iptables desses três servidores. Aqui mesmo no VOL você acha diversos exemplos).


8. Re: DNAT com FQDN/Hostname

Mário Silva
tekknova

(usa Red Hat)

Enviado em 13/08/2010 - 10:08h

Obrigado pelas vossas respostas.
Julio,
Essa solução já implementei mas tem um resultado estranho. A questão é que pondo como é apresentado, tanto os requests para www1 como o www2 vão dar no mesmo servidor interno ( que é o primeiro pela ordem das regras ) como se a regra logo abaixo não existisse.
Alguma ideia?
Abraços


9. IP

Felipe Domingos
Felipe Domingos

(usa Slackware)

Enviado em 13/08/2010 - 10:22h

Opa,

O Problema na verdade é você só possui um IP publico ao meu ver, pois quando coloca a regra resolvendo pelo nome www.xxxxx.com ou wwww.yyyy.com, esses nomes são resolvidos para ip, por isso só uma das regras funcionam (a que estiver em primeiro para ser resolvida).

Acredito ser mais facil fazer esse redirecionamento direto no servidor web, por exemplo, se for o apache, configurar ele de modo a quando uma requisição for para o endereço yyyy.com ele encaminhar para o outro server.

abs


10. Dnat.

Perfil removido
removido

(usa Nenhuma)

Enviado em 13/08/2010 - 16:07h

Comenta ou apaga as duas linhas e coloca essas:

-A PREROUTING -s 192.168.1.0/24 -i eth0 -d ip_firewall_box -p tcp --dport 80 -j DNAT --to 192.168.1.24
-A POSTROUTING -s 192.168.1.0/24 -o eth0 -d ip_firewall_box -p tcp --dport 80 -j SNAT --to ip_firewall_box

Repita essas duas linhas com o IP 192.168.1.68

Se não der certo tenta redirecionar para a porta 8080 do servidor web 2 (ou outra porta), só mudando nas linhas acima 192.168.1.68:8080 e alterando a escuta para essa porta no servidor 2.

OU então assim:
-A PREROUTING -d www1.teste.com -i eth0 -d ip_firewall_box -p tcp --dport 80 -j DNAT --to 192.168.1.24
-A POSTROUTING -d www1.teste.com -o eth0 -d ip_firewall_box -p tcp --dport 80 -j SNAT --to ip_firewall_box

E repete com www2.teste.com

Não sei como estão tuas configurações, então vamos pelo método da tentativa e erro. :)


11. virtual hosts

irado furioso com tudo
irado

(usa XUbuntu)

Enviado em 13/08/2010 - 16:19h

instale um proxy apache com virtual hosts e redirecione. Com isso vc evita que algum "request" mal-formado (e mal-intencionado) vá "passear" dentro de sua rede.

isto aqui deve ajudar: http://httpd.apache.org/docs/2.0/vhosts/examples.html


12. Dnat.

Perfil removido
removido

(usa Nenhuma)

Enviado em 13/08/2010 - 16:20h

Já pensei nisso irado, mas ele quer dois servidores web na rede. E assim ele vai ter que implementar medidas de segurança no Iptables que recebe a internet. Mas concordo com você. O melhor seria um Proxy Apache com virtual hosts em uma máquina só.



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts