Redirecionamento

1. Redirecionamento

fernando
_cabelo_

(usa Debian)

Enviado em 29/04/2009 - 08:35h

Galera venho recorrer ao VOL novamente pois já revirei a net e nao consegui fazer funcionar.
Estou desenvolvendo um serviço de captive portal, (eu sei que parece que estou reinventando a roda, mas é que os existentes tem muitos recursos desnecessarios para mim), e nesse captive portal eu ja testei diversos firewalls que encontrei pela net como o do Carlos Affonso Enriques no viva o linux e também o do darkstarlinux no slackbr.org mas nenhum dos firewall me deram uma respota favoravel do que preciso, o que preciso é o seguinte.

Quando o usuário for acessar a página principal definida no navegador dele ele será redirecionado para o servidor local onde será pedido o usuario e senha para conferir com o do meu banco de dados mysql, isto ai este tudo OK o problema é no redirecionamento da url acontece o seguinte, se eu digito www.uol.com.br o navegador fica buscando até dar falha de conexão mas se eu digito 200.98.249.120 (IP do UOL), ele é redirecionado para a minha página de login corretamente, agora eu nao consiguo entender o que acontece para dar este erro.

Segue o meu script de firewall

#!/bin/bash

### Define as variaveis
IPT=/sbin/iptables
IPCLIENTE='/instala/firewall-ips'
IFACENET=eth0

#### Ativa o roteamento
echo "1" > /proc/sys/net/ipv4/ip_forward

#### Limpa as regras
$IPT -F
$IPT -X
$IPT -Z
$IPT -F -t nat
$IPT -X -t nat
$IPT -Z -t nat

#### Define a politica padrao
$IPT -P INPUT ACCEPT
$IPT -P FORWARD ACCEPT
$IPT -P OUTPUT ACCEPT

#### Libera o interface
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT

#### Filtros
# Bloquear Netbios
$IPT -A INPUT -p udp --dport 137:139 -j DROP
$IPT -A INPUT -p tcp --dport 137:139 -j DROP
$IPT -A INPUT -p tcp --dport 445 -j DROP

$IPT -A FORWARD -p udp --dport 137:139 -j DROP
$IPT -A FORWARD -p tcp --dport 137:139 -j DROP
$IPT -A FORWARD -p tcp --dport 445 -j DROP

# Bloquear o uso de Proxy externo
$IPT -A FORWARD -p tcp --dport 3128 -j DROP
$IPT -A FORWARD -p tcp --dport 8080 -j DROP

# Bloquear acesso externo a porta do virtual host de autenticacao
$IPT -A INPUT -i $IFACENET -p tcp --dport 82 -j DROP

#### Redireciona toda a rede
grep "^" $IPCLIENTE | while read IP;
do

# Cria uma nova chain (cadeia)
$IPT -t nat -N "PRE-$IP"
# Redireciona o trafego do IP do cliente da porta 80 pra porta 82 onde roda o virtual host do apache
echo $IP
$IPT -t nat -A PREROUTING -i eth1 -p tcp -s $IP -j REDIRECT --to-port 82
#$IPT -t nat -A "PRE-$IP" -i eth1 -p tcp -s $IP --dport 80 -j REDIRECT --to-port 82
Esta é a regra real que existia no firewall do darkstarlinux mas foi modificada pois não funcionava de jeito nenhum
# Redireciona o tráfego do IP do cliente da porta 80 pra cadeia com o IP
$IPT -t nat -A PREROUTING -i eth1 -p tcp -s $IP --dport 80 -j "PRE-$IP"
# Bloqueia conexões de entrada da porta 0 ate 1024 com destino ao IP do cliente
#$IPT -A FORWARD -s 192.168.0.0/24 -d $IP -p tcp --dport 0:1024 -j DROP

done

#### Ativa os modulos do Kernel
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ip_queue
modprobe ip_tables
modprobe ipt_LOG
modprobe ipt_MARK
modprobe ipt_MASQUERADE
modprobe ipt_REDIRECT
modprobe ipt_REJECT
modprobe ipt_TCPMSS
modprobe ipt_TOS
modprobe ipt_limit
modprobe ipt_mac
modprobe ipt_mark
modprobe ipt_multiport
modprobe ipt_owner
modprobe ipt_state
modprobe ipt_tcpmss
modprobe ipt_tos
modprobe iptable_filter
modprobe iptable_mangle
modprobe iptable_nat

echo "-----------------------------------------------------------------------"


este é o meu script a variavel IPCLIENTE recebe do arquivo firewall-ips corretamente pois eu coloquei um echo para verificar. Peço que por favor me deem uma ajudinha para este projeto..

Desde já agradeço
__________________
Fernando Piovezan
MNP - Soluções em Informática


  


2. Redirecionamento

José Mário
miura 787

(usa Ubuntu)

Enviado em 29/04/2009 - 09:45h

Pelo que eu percebi vc está com problemas na resolução do seu DNS, vc tem algum servidor DNS na sua rede interna?
Este serviço é que vai receber a URL e devolver o IP, com isso provavelmente seu sistema funcionará!


3. Re: Redirecionamento

fernando
_cabelo_

(usa Debian)

Enviado em 29/04/2009 - 10:15h

Eu ja estava desconfiado de que o problema poderia ser este mas agora eu to com a duvida no seguinte, so configurar o servidor DNS para rede local funcionaria ou teria que configurar ele como servidor esterno mesmo ja que esta maquina esta na rede interna e nao esta com ip valido.




4. Re: Redirecionamento

fernando
_cabelo_

(usa Debian)

Enviado em 29/04/2009 - 11:18h

Realmente consegui fazer funcionar instalando e configurando o bind, agora se eu entro no site www.google.com.br ele redireciona para a minha porta 82 sem problemas mas tem um outro problema agora quando eu digito www.google.com.br funciona tudo normal agora se eu digito www.google.com.br/translate ele redireciona para o meu servidor da rede local so que com o que tem depois da barra e fica assim 192.168.0.1/translate e logicamente nao existe esta pagina portando eu queria saber como faco para arrumar isto tambem acredito que seja no apache este problema e nao no firewall agora.

Desde ja agradeco


5. Tô do mesmo jeito. Me ajudem.

Cleibson Martins da Silva
cleibson

(usa Conectiva)

Enviado em 14/05/2009 - 11:59h

Olá, estou com um caso bem parecido. No meu caso eu direciono a navegação para a porta 81 do apache, onde está a página de autenticação, depois que autentica é que eu faço forward para o cliente navegar, e permito o input e redirect para o proxy.

O problema é que se por exemplo antes de autenticar tento acessar www.google.com.br por exemplo, ele vai para autenticação, até aí blz, autentico e sou redirecionado para a página do provedo. Blz. mas e aí eu tentar acessar o www.google.com.br de novo, ele exibe a página de autenticação de novo, depois de um montes de "F5"(refresh) no navegador é que ele exibe realmente a página do www.google.com.br.

Alguém saca alguma coisa sobre isso?

Estou disposto até a pagar consultoria para fazer a solução funcionar blz.


6. Re: Redirecionamento

Richard Andrade
richardandrade

(usa Debian)

Enviado em 14/05/2009 - 13:16h

Você está tentando fazer 1 redirecionamento pela rede interna de uma máquina para outra? é isso? ou o acesso está sendo externo?!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts