+ Responder ao Tópico



  1. #1

    Padrão Redirecionando clientes pppoe para uma pagina apos o login

    Vejo sempre o pessoal se perguntando se é possivel enviar clientes para uma página de aviso usando PPPoE, então resolvi contribuir com este script.

    Código :
    :foreach ID in=[/ppp active find] do={
      :foreach LOGIN in=[/ppp active get $ID name] do={
        :foreach IP in=[/ppp active get $ID address] do={
          :foreach UPTIME in=[/ppp active get $ID uptime] do={
            :if ($UPTIME = 1s)  do={
              :log info ("Adicionando IP do cliente do Address Lists: " . $IP);
              /ip firewall address-list add list=Aviso disabled=no address=$IP;
            }
     
            :if ($UPTIME >= 1m)  do={
              :log info ("Removendo IP do cliente do Address Lists: " . $IP);
              /ip firewall address-list remove [find address=$IP]
            }
          }
        }
      }
    }

    Este script adiciona o IP do usuário com uptime igual a 1 segundo em um address list, quando o usuário atinge uptime igual ou maior que 1 minuto o IP dele é removido do address list, ae basta uma regra de redirecionamento dos IPs do address list para o servidor web que hospeda a página que o cliente ira visualizar, detalhe se o cliente começar a navegar apos um minuto o IP dele não vai estar no address list e a regra não se aplicara a ele, existe várias formas de fazer isso, esse foi somente um exemplo.
    Última edição por ab5x2; 29-07-2015 às 19:14.

  2. #2

    Padrão Re: Redirecionando clientes pppoe para uma pagina apos o login

    Vlw pela contribuição.



  3. #3

    Padrão Re: Redirecionando clientes pppoe para uma pagina apos o login

    Bem interessante.

    Será que tem como fazer com base no consumo que o cliente teve após logar ao invés de fazer pelo tempo?

    Pois dai não importa o tempo conectado, importa se ele já usou ou não.

  4. #4
    Analista de Suporte em TI Avatar de demattos
    Ingresso
    Jul 2011
    Localização
    Criciuma/SC
    Posts
    1.923
    Posts de Blog
    3

    Padrão Re: Redirecionando clientes pppoe para uma pagina apos o login

    hoje estou testando para colocar em producao um portal captive em linux q direciona o trafico para aporta 80 e quando cliente le clica volta a navegar.Mas vou testar este em mikrotik muito bom amigo deciorodrigo



  5. #5
    Moderador Avatar de minelli
    Ingresso
    Aug 2006
    Localização
    Pres. Venceslau - SP | Pres. Prudente - SP
    Posts
    1.408
    Posts de Blog
    10

    Padrão Re: Redirecionando clientes pppoe para uma pagina apos o login

    Citação Postado originalmente por gustavo_marcon Ver Post
    Bem interessante.

    Será que tem como fazer com base no consumo que o cliente teve após logar ao invés de fazer pelo tempo?

    Pois dai não importa o tempo conectado, importa se ele já usou ou não.
    Sim tem sim basta alterar o script.

  6. #6

    Padrão Re: Redirecionando clientes pppoe para uma pagina apos o login

    interresante vou experimentar tambem, valeu!!



  7. #7

    Padrão Re: Redirecionando clientes pppoe para uma pagina apos o login

    Citação Postado originalmente por minelli Ver Post
    Sim tem sim basta alterar o script.
    Show de bola. Se tem como acho realmente interessante.

  8. #8

    Padrão Re: Redirecionando clientes pppoe para uma pagina apos o login

    O script postado foi pra dar uma ideia de como pode ser feito, confiram esse video pra ver uma das aplicações em uso:




  9. #9

    Padrão Re: Redirecionando clientes pppoe para uma pagina apos o login

    Amigo, como esse ideia é nova para mim, tenho algumas duvidas, 1ª onde fica hospedada esse pagina de aviso e como alterar a pagina, 2º o IP que fica no Address List é o Ip que o discador fornece para meus clientes no meu caso forneço 2 IP´s um seria o IP do servidor 172.19.0.50 e o outro IP do cliente 172.18.0.35, 3º o boleto bancario que é mostrato no video ja vem com o nome do cliente, de onde ele pegou a informação ou teria que fazer varias paginas para cada devedor, eu uso o mk-auth daria para pegar o boleto direto dele? 4ª É o script que vc fez é colocado onde e quais regras tenho que fazer para rodar no cliente. Aproveitando o amigo poderia postar um video passo a passo de como fazer as configurações no mk. ficava show de bola
    Interessante sua iniciativa parabens
    DESDE JÁ UM FELIZ 2012 PARA TODOS

  10. #10

    Padrão Re: Redirecionando clientes pppoe para uma pagina apos o login

    A página fica hospedada em um servidor web, no caso utilizo o servidor do sistema de gerenciamento do provedor (VIGO Provider), em relação aos dados do cliente e o boleto é gerado dinamicamente, assim que o cliente acessa a página um script é executado obtendo quem os dados do cliente e consultando na base de dados se existem boletos para ser exibidos, caso não tenha boletos atrasados o cliente passa direto não visualizando a página de aviso.



  11. #11

    Padrão Re: Redirecionando clientes pppoe para uma pagina apos o login

    e noi caso para quem usa mk-auth , como se aplica essas config obg

  12. #12
    alexandrerb
    Visitante

    Padrão Re: Redirecionando clientes pppoe para uma pagina apos o login

    Amigos preciso saber como fazer um cliente apos se logar ficar na mesma pagina de login, pois la tem os links que ele nessecita para começar a navegar. Da forma que estar quando o cliente se loga automaticamente redireciona ele para uma outra pagina não permitindo que ele veja o quem tem na pagina de logim do hotspot.


    Como fazer isso!!!


    Ajudem por favor....



  13. #13
    alexandrerb
    Visitante

    Padrão Re: Redirecionando clientes pppoe para uma pagina apos o login

    Ninguem pra ajudar aqui e tirar minha duvida!!! Meu post não tem respostas...

    Kd o pessoal da ajuda!!!

  14. #14
    Avatar de infor3
    Ingresso
    Mar 2013
    Localização
    Piedade de Ponte Nova e Região
    Posts
    526

    Padrão Re: Redirecionando clientes pppoe para uma pagina apos o login

    Estou muito interessado mesmo neste topico, procuro isso a muito tempo, mais o meu problema é o seguinte quero uma pagina somente para passar uma mensagem para os meus cliente, tipo fazer uma pagina jogar no files ou em algum outro lugar, e quando fora fazer uma manutenção ou uma propaganda eu rodo o script para os clientes ver e continuar navegando depois.



  15. #15
    Avatar de ShiFT
    Ingresso
    Sep 2010
    Localização
    Francisco Beltrão - PR
    Posts
    113

    Padrão Re: Redirecionando clientes pppoe para uma pagina apos o login

    1 milhão de desculpa em ressuscitar o tópico, mais é que antes eu não precisava desse redirecionamento, e hoje eu to vendo o quão importante é. Seguinte cara, eu criei um script em system/scripts como aviso. Rodei o Script e talz, mais agora eu não sei como fazer o redirecionamento dos clientes..

    Os meus cliente pppoe recebem a faixa de ip 192.168.200.x não tenho nem ideia de como redirecionar o cliente depois de conectado e depois que ele entrar na adress list não sei também o que fazer.

    Cara, achei bagual demais poder direcionar o cliente pra uma pagina.. No meu caso não quero por uma pagina de cobrança ou aviso.. Quero só redirecionar o cliente pra pagina que eu quiser.

    Se puder me ajudar cara, ficaria muito grato.. Desde já agradeço.

    OBs: o Script já ta rodando.

  16. #16
    Avatar de ShiFT
    Ingresso
    Sep 2010
    Localização
    Francisco Beltrão - PR
    Posts
    113

    Padrão Re: Redirecionando clientes pppoe para uma pagina apos o login

    Citação Postado originalmente por cleciorodrigo Ver Post
    Vejo sempre o pessoal se perguntando se é possivel enviar clientes para uma página de aviso usando PPPoE, então resolvi contribuir com este script.

    :foreach ID in=[/ppp active find] do={
    :foreach LOGIN in=[/ppp active get $ID name] do={
    :foreach IP in=[/ppp active get $ID address] do={
    :foreach UPTIME in=[/ppp active get $ID uptime] do={
    :if ($UPTIME = 1s) do={
    :log info ("Adicionando IP do cliente do Address Lists: " . $IP);
    /ip firewall address-list add list=Aviso disabled=no address=$IP;
    }

    :if ($UPTIME >= 1m) do={
    :log info ("Removendo IP do cliente do Address Lists: " . $IP);
    /ip firewall address-list remove [find address=$IP]
    }
    }
    }
    }
    }

    Este script adiciona o IP do usuário com uptime igual a 1 segundo em um address list, quando o usuário atinge uptime igual ou maior que 1 minuto o IP dele é removido do address list, ae basta uma regra de redirecionamento dos IPs do address list para o servidor web que hospeda a página que o cliente ira visualizar, detalhe se o cliente começar a navegar apos um minuto o IP dele não vai estar no address list e a regra não se aplicara a ele, existe várias formas de fazer isso, esse foi somente um exemplo.

    1 milhão de desculpa em ressuscitar o tópico, mais é que antes eu não precisava desse redirecionamento, e hoje eu to vendo o quão importante é. Seguinte cara, eu criei um script em system/scripts como aviso. Rodei o Script e talz, mais agora eu não sei como fazer o redirecionamento dos clientes..

    Os meus cliente pppoe recebem a faixa de ip 192.168.200.x não tenho nem ideia de como redirecionar o cliente depois de conectado e depois que ele entrar na adress list não sei também o que fazer.

    Cara, achei bagual demais poder direcionar o cliente pra uma pagina.. No meu caso não quero por uma pagina de cobrança ou aviso.. Quero só redirecionar o cliente pra pagina que eu quiser.

    Se puder me ajudar cara, ficaria muito grato.. Desde já agradeço.

    OBs: o Script já ta rodando.



  17. #17
    Avatar de ShiFT
    Ingresso
    Sep 2010
    Localização
    Francisco Beltrão - PR
    Posts
    113

    Padrão Re: Redirecionando clientes pppoe para uma pagina apos o login

    Olá amigo, mais uma vez eu aqui.. Desculpe novamente.. Estou tentao ver o que o script faz, até agora ele coloca em Adress List em dynamic, ele não entra como um ip fixo.. Pra eu conseguir fazer isso, não seria interessante eu colocar cada cliente em um ip fixo, setado nas regras de cadastro de cliente em secrets?

    Estou aguardando resposta, obrigado.

  18. #18

    Padrão Re: Redirecionando clientes pppoe para uma pagina apos o login

    ola. uso aqui uma rb1100ahx2 e tenho um site www.meu.com.br da pra redirecionar toda vez que um cliente conecta em pppoe, assim que ele for abrir um site abre primeiro u meu?
    ai eu posso usar este site para qualquer coisa aviso propaganda e etc.



  19. #19

    Padrão Re: Redirecionando clientes pppoe para uma pagina apos o login

    uma boa ideia,pra quem puder ajudar e uma solução pratica muito interessante

  20. #20

    Padrão Re: Redirecionando clientes pppoe para uma pagina apos o login

    Um aproach diferente, e eu acho que um pouco melhor, porém mais complexo seria assim.


    Nos profiles do PPP no RouterOS mesmo, você tem um parâmetro lá chamado "Address List", o qual o usuário daquele perfil, ao se conectar, vai ser adicionado a address-list com aquele nome automaticamente.


    Se você usa Radius, tem um parametro do Radius específico da Mikrotik, para que o usuário a se conectar seja adicionado a uma address-list. No User Manager (Radius da Mikrotik) esse parâmetro já está embutido nos Limitations, que são usados nos profiles. Em outros servidores Radius, é só adicionar o parametro, conforme descrito na Wiki.


    http://wiki.mikrotik.com/wiki/Manual...dor_dictionary


    O parametro é o Mikrotik-Address-List, de ID 19.


    Digamos que você colocou lá uma address-list chamada "Addr-Start", para indicar que o cliente recem iniciou a sessão. Neste ponto, você pode adicionar no NAT, duas regras. Uma para redirecionar o cliente para o seu servidor Web, e outra para adicionar ele numa segunda address list, algo como:


    Código :
    /ip firewall nat chain=dstnat src-address-list="Addr-Start" protocol=tcp dst-port=80,443 action=dst-nat to-addresses=IP.DO.SERVIDOR.WEB
    /ip firewall nat chain=dstnat src-address-list="Addr-Start" protocol=tcp dst-port=80,443 action=add-src-to-address-list address-list="Addr-Redirected" address-list-timeout=20s


    Neste ponto, o cliente vai ser redirecionado para a página da web personalizada e vai ser adicionado a uma segunda address-list chamada "Addr-Redirected", então, nos criamos um script no scheduler, para rodar a cada 10 segundos, e colocamos assim lá:


    Código :
    :foreach addr in=[/ip firewall address-list find list="Addr-Redirected"] do={
      :local ip [/ip firewall address-list get $addr address]
      /ip firewall address-list remove [find list="Addr-Start" address=$ip]
    }


    Dessa forma, a cada 10 segundos, esse script vai ser executado e vai verificar todos os endereços na address-list "Addr-Redirected", que sao os clientes QUE JÁ FORAM REDIRECIONADOS para a pagina de aviso, e vai excluir o address-list "Addr-Start" que foi adicionado automaticamente quando ele conectou. O item com o IP do usuário que foi adiconado na address-list "Addr-Redirected" vai ser excluído automaticamente após 20 segundos conforme expecificado na regra do nat com o parametro "address-list-timeout=20s", deixando tudo limpinho para as próximas rodadas.


    O problema disso é que, se a sua rede tem algum problema e o usuário ficar caindo e reconectando, cada vez que isso acontece ele vai ser redirecionado novamente para a pagina de aviso, mas isso ja acontecia no script postado inicialmente também.


    A vantagem de fazer dessa forma, é consumir menos recursos da RB visto ela não precisar correr TODOS os clientes PPPoE cada vez que o script é executado, ela mantem uma ordem de execução voltada somente para quem precisa ser redirecionado.


    Outro problema, é se você tem uma rede boa e o usuário nunca desliga o equipamento dele que faz a conexão com o seu servidor PPPoE. Ele vai receber o aviso na primeira vez e se ficar 10 dias sem desligar, é 10 dias sem aviso. Para esses casos, você pode criar um segundo script no scheduler para rodar digamos 1 vez a cada 12 horas, e verificar as conexões PPPoE que já estão rodando a mais de 1 dia e adicionar o IP delas na address-list "Addr-Start" novamente, e assim ele vai ser redirecionado mais uma vez, algo assim:


    Código :
    :foreach user in=[/ppp active find uptime>=1d] do={
      :local ip [/ppp active get $user address]
      /ip firewall address-list add list="Addr-Start" address=$ip dynamic=yes
    }




    OBS IMPORTANTE: O que eu postei aqui, não foi testado, apenas achei interessante a questão e postei minha idéia, e desenvolvi uns scripts testando alguma coisa separadamente. Quem quiser testar, achando erros, a gente pode ir corrigindo.
    Última edição por ab5x2; 29-07-2015 às 20:36.