+ Responder ao Tópico



  1. #1

    Question Redirecionar um domínio

    Pessoal, como procurei e não encontrei nada parecido com o que eu preciso, resolvi pedir ajuda aqui para vocês.

    Acontece o seguinte: (desculpem o texto longo, mas foi necessário para explicar direito o problema)

    Tenho um gateway, de IP 192.168.xxx.1, rodando um script Firewall com iptables.
    Debaixo desse Gateway, funciona um servidor web, na porta 80, de IP 192.168.xxx.4

    Até aí, tudo bem. O problema é que me foi pedido para colocar um site em uma outra máquina, de IP 192.168.xxx.100. Esse site não pode ficar no mesmo servidor web, para não sobrecarregá-lo.

    Foi registrado um domínio para esse site:_www.dominio.com.br. E como a porta 80 do firewall já está ocupada com o primeiro servidor web, eu tive que utilizar uma porta alternativa no Gateway, que no caso foi a 8083. (a 8080, 8081 e 8082 estão ocupadas com outros serviços)

    Meu problema começa aí: Se eu digito_www.dominio.com.br, obviamente a requisição vai para o servidor web 192.168.xxx.4. Como a porta 80 do Gateway está redirecionada para o IP 192.168.xxx.4, a coisa só funciona se eu digito_www.dominio.com.br:8083. Foi redirecionada a porta 8083 do Gateway para a porta 80 do servidor de IP 192.168.xxx.100.

    Eu li que tem como redirecionar esse domínio_(www.dominio.com.br)_para outro servidor e outra porta com o iptables, mas não sei como fazer.

    No caso eu gostaria de redirecionar o endereço_www.dominio.com.br_para o IP 192.168.xxx.100, porta 80, de forma que não me fosse preciso digitar o :8083 no final.

    Alguém teria como me auxiliar nisso? É preciso acrescentar, ou apenas alterar alguma das regras?
    Este domínio está registrado apenas para o IP real do Gateway: 200.xxx.xxx.xxx

    Segue minhas regras na firewall que cuidam dos redirecionamentos para esses dois servidores web (lembrando que tudo funciona perfeitamente. Só preciso redirecionar este domínio especificamente, para não precisar digitar a porta 8083 após o endereço:

    Agradeço a ajuda!!!

    echo "Redirecting WWW port"

    $IPTABLES -A INPUT -p tcp --dport 80 -j ACCEPT
    $IPTABLES -A INPUT -p tcp --dport 8083 -j ACCEPT

    $IPTABLES -t filter -I FORWARD -d 192.168.xxx.4 -p tcp --dport 80 -j ACCEPT
    $IPTABLES -t filter -I FORWARD -s 192.168.xxx.4 -p tcp --sport 80 -j ACCEPT
    $IPTABLES -t filter -I FORWARD -d 192.168.xxx.100 -p tcp --dport 80 -j ACCEPT
    $IPTABLES -t filter -I FORWARD -s 192.168.xxx.100 -p tcp --sport 80 -j ACCEPT

    $IPTABLES -t nat -A PREROUTING -p tcp -i $EXTIF --dport 80 -j DNAT --to 192.168.xxx.4
    $IPTABLES -t nat -A PREROUTING -p tcp -i $EXTIF --dport 8083 -j DNAT --to 192.168.xxx.100:80

    $IPTABLES -t nat -A PREROUTING -p tcp -d 200.xxx.xxx.xxx --dport 80 -j DNAT --to 192.168.xxx.4
    $IPTABLES -t nat -A PREROUTING -p tcp -d 200.xxx.xxx.xxx --dport 8083 -j DNAT --to 192.168.xxx.100:80

    $IPTABLES -t nat -A POSTROUTING -d 192.168.xxx.4 -j SNAT --to 200.xxx.xxx.xxx
    $IPTABLES -t nat -A POSTROUTING -d 192.168.xxx.100 -j SNAT --to 200.xxx.xxx.xxx
    Última edição por felixleonardo; 31-08-2009 às 21:42.

  2. #2

    Padrão

    Já rolaram diversas discussões sobre isso no fórum, eu já participei de várias. O que você deseja não é possível de se fazer apenas por regras de filtro de pacotes. Porém, você pode usar o Redirect do Apache para fazê-lo.

    Você cria um novo VirtualServer para o domínio que você quer. Então, dentro desse VirtualServer, você coloca a seguinte diretiva:

    Redirect permanent "/" "http://200.xxx.xxx.xxx:8083/"

    E claro, no seu filtro de pacotes deverá constar uma regra que direcione o tráfego da porta 8083 para o host correto. A barra no final do endereço de destino é essecial.

    Veja aí de dá certo

  3. #3

    Padrão

    Pedro, amigão, não sei se foi isso que você me sugeriu, mas eu consegui fazer acrescentando um bloco VirtualHost no servidor web 192.168.xxx.4 da seguinte forma:

    <VirtualHost 192.168.xxx.4:80>
    ServerName http://www.dominio.com.br
    Redirect permanent http://www.dominio.com.br:8083/
    </VirtualHost>

    Deu certinho agora. Agradeço muito a ajuda!!!
    Última edição por felixleonardo; 01-09-2009 às 09:27. Razão: Problema solucionado