+ Responder ao Tópico



  1. #1

    Padrão Redirecionamento

    Galera venho recorrer ao forumnovamente 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

    Código :
    #!/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 
    [B][SIZE=3][COLOR=Red]Esta é a regra real que existia no firewall do darkstarlinux mas foi modificada pois não funcionava de jeito nenhum[/COLOR][/SIZE][/B]
    # 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
    Última edição por fernandop; 29-04-2009 às 08:36.