Página 1 de 2 12 ÚltimoÚltimo
+ Responder ao Tópico



  1. #1

    Padrão Freeradius + PPPOE + ippool + mikrotik

    Prezados,

    Estou necessitando de ajuda para entender o funcionamento do arquivo default (/etc/raddb/sites-available/default) do freeradius, mais especificamente na parte da post-auth.

    Minha necessidade é checar se algum ip foi alocado ao usuário que autenticou, pois meu concentrador é um mikrotik e meu cliente também tem um mikrotik e quando a autenticação é oriunda de um mikrotik, o usuário autentica e fica com o ip zerado no pppoe, conforme pode ser visto na imagem ( http://prntscr.com/6qo6ei ), obviamente que o erro é devido a falta de ip disponível e a mensagem de erro é retornada no mikrotik "could not determine remote address". O problema é que quando a autenticação é feita de qualquer outro equipamento que não mikrotik o cliente não autentica, apenas equipamentos mikrotik é que acontece isso. Eu estou tentando tratar isso no post-auth do freeradius, tentando checar o retorno do ip alocado, mas não consegui, segue abaixo o código:

    post-auth {
    sqlippool
    sql1
    exec
    Post-Auth-Type REJECT {
    update reply {
    Reply-Message = "Usuario ou Senha incorretos."
    }
    attr_filter.access_reject
    }
    }


    versões utilizadas:
    FreeRADIUS Version 2.1.12
    Concentrador: RB433AH v6.6
    Cliente: RB450 v6.12
    Banco de dados: PostgresSQL 9.3

    Alguém tem alguma sugestão para resolver esta questão ?

    obrigado.

  2. #2

    Padrão Re: Freeradius + PPPOE + ippool + mikrotik

    Olá amigo, tenho aqui rodando Freeradius com MySQL e mikrotik... com IPPool em banco de dados...

    me diga o que vc já tem funcionando, quais passos já efetuou para aplicar o IP Pool em mysql..

    creio que posso te ajudar...

    Abraços.

  3. #3

    Padrão Re: Freeradius + PPPOE + ippool + mikrotik

    Citação Postado originalmente por dbedani Ver Post
    Olá amigo, tenho aqui rodando Freeradius com MySQL e mikrotik... com IPPool em banco de dados...

    me diga o que vc já tem funcionando, quais passos já efetuou para aplicar o IP Pool em mysql..

    creio que posso te ajudar...

    Abraços.
    Amigo, não querendo desvirtuar o tópico, mas se puder me indicar algum material/tutorial para configurar um ambiente desses, agradeço muito, pois há um tempo atrás eu tentei fazer rodar e não consegui.

    Meu ambiente hoje é freeradius com mysql e mikrotik, porém sem o uso de ippool fornecido pelo radius usando o mysql pois não consegui fazer funcionar.

    Agradeço desde já !


    Obrigado!

  4. #4

    Padrão Re: Freeradius + PPPOE + ippool + mikrotik

    Nao tenho um tutorial unico, pois fui juntando as "pecinhas" e informações de varios tutoriais para chegar na solução...

    vou tentar desenvolver um, documentando as alterações/ajustes que fiz no meu sistema.

  5. #5

    Padrão Re: Freeradius + PPPOE + ippool + mikrotik

    consegui,

    fiz a seguinte alteração:

    Código :
    post-auth {
      exec
      sqlippool {
        notfound = 1
      }
      if(notfound){
        update reply {
          Reply-Message = "nenhum ip foi associado"
        }
        reject
      }
      sql1
      Post-Auth-Type REJECT {
        update reply {
          Reply-Message = "Usuario ou Senha incorretos."
        }
        attr_filter.access_reject
      }
    }

  6. #6

    Padrão Re: Freeradius + PPPOE + ippool + mikrotik

    É muito difícil você achar um tutorial a respeito (da forma que se espera), pois existem varias formas de trabalhar com ip pool, eu por exemplo estou configurando com ip public e roteamento dinâmico através de OSPF.
    porém a configuração para utilização padrão é simples, mas precisa-se definir a metodologia de trabalho, para evitar falta de ip, ips duplicados, são n fatores...
    eu ainda estou na fase de testes...

  7. #7

    Padrão

    Clique na imagem para uma versão maior

Nome:	         ip_pool.pdf
Visualizações:	207
Tamanho: 	100,8 KB
ID:      	58350
    [download PDF]

    Fiz um apanhado das configurações que tenho rodando no meu sistema... não está muito documentado tampouco detalhado... mas funciona!

    E é isso que você falou Leandro, cada um tem um cenário, uma forma de trabalhar, e sempre precisamos ajustar as nossas necessidades...

    Bom, realizem os testes e vejam se funciona... aqui pra mim está 100%. Só ocorre falhas quando há mudança de horário de verão, pois o radius se perde no prazo de alocação/renovação dos IPs..

    Ah, ainda não testei nada com IPv6... sem planos para isso por hora!

    Abraços,

  8. #8

    Padrão Re: Freeradius + PPPOE + ippool + mikrotik

    Muito obrigado a todos, farei os testes e retorno aqui para informar o resultado!

    Valeu!

  9. #9

    Padrão Re: Freeradius + PPPOE + ippool + mikrotik

    show de bola este tutorial, com certeza vai ajudar o gustavo e a mim tb, mas deixa eu te fazer uma pergunta acerca do que você comentou.
    com relação a renovação do ip, toda vez que você renova o ip você derruba a conexão ? se sim, como faz isso ?

  10. #10

    Padrão Re: Freeradius + PPPOE + ippool + mikrotik

    Não não... o próprio MK, fica enviando o status da conexão para o Radius, de tempos em tempos... informando a qto tempo esta conectado, qtos bytes foram enviados e recebidos, e etc... fazendo um "keep-alive" daquela conexão PPPoE...

    Esse intervalo pode ser configurado através de parâmetros na tabela radreply, ou pelo proprio MK:

    /ppp aaa print
    use-radius: yes
    accounting: yes
    interim-update: 600s

    Neste caso, configurei para a cada 10min o MK enviar ao Radius um "update".

    Quando o radius aloca um IP da tabela radippool, ele preenche o nome do usuario nos campos e a hora da alocação, entre outras informações. A cada update recebido pelo MK, o proprio radius renova o IP que aquele username está utilizando.

    No PDF que enviei, existe uma configuração no arquivo sqlippool.conf de lease-duration = 1800, ou seja, 30 min, que julguei ser o ideal.

    Quando o Radius recebe o aviso de desconexão por parte do MK, o radius vai lá e "libera" o IP que estava alocado para aquele username, na radippool.

    Sempre que houver novas conexões, o Radius vai dar preferencia para os IPs que de fato foram liberados.

    Caso sua pool se esgote, e o IP não tenha sido liberado pois o MK não enviou o "disconnect" para o Radius poder liberar o IP, ou não houve renovação dentro dos 30min configurados em lease-duration, o Radius entende que aquele IP está disponivel e o libera para outro usuário.

    Resumindo:

    Radius atribui um IP para o usuario por 30min;
    MK renova o IP, enviando status-update a cada 10min;
    Se o Radius não receber um 'disconnect' explicito do MK, informando que o usuário desconectou, ou então não houve "update" por parte do MK, depois de 30 min o Radius volta a liberar aquele IP para novas conexões;
    Note que 30min é suficiente para o MK enviar 3 updates;

    É um pouco complexo o funcionamento, mas com a pratica tudo fica claro...

  11. #11

    Padrão Re: Freeradius + PPPOE + ippool + mikrotik

    não não, eu entendi perfeitamente, eu só não tinha notado que através do interim-update o expiry_time era também renovado para data atual + 30 min (como no seu caso) enquanto a conexão está ativa, acabei de testar e realmente funcionou.

  12. #12

    Padrão Re: Freeradius + PPPOE + ippool + mikrotik

    Funcionando então?

  13. #13

    Padrão Re: Freeradius + PPPOE + ippool + mikrotik

    100%, muito obrigado, vou encerrar o tópico.

  14. #14

    Padrão Re: Freeradius + PPPOE + ippool + mikrotik

    Poxa, que bom q deu certo!

    Boa sorte ae! Abraços.

  15. #15

  16. #16

    Padrão Re: Freeradius + PPPOE + ippool + mikrotik

    Fechado da onde que eu ainda consigo responder ao tópico kkkk

  17. #17

    Padrão Re: Freeradius + PPPOE + ippool + mikrotik

    Rapaz, pena que esse tópico é antigo, eu teria minha contribuição pra tópico se não estivesse tão antigo

  18. #18

    Padrão Re: Freeradius + PPPOE + ippool + mikrotik

    Pessoal, bom dia!
    Sou novo na comunidade, eu não sei como faço para fazer perguntas rs
    Alguém pode me ajudar por favor?

    Obrigado!

  19. #19

    Padrão Re: Freeradius + PPPOE + ippool + mikrotik

    Mas vamos lá...

    A relatos de muitas pessoas tendo duplicidade de ips quando elas tem mais de um mikrotik, pois o padrão que vem nas queryes do freeradius faz com que seja entregue ips repetidos entre mikrotiks

    a solução é:

    nano /etc/freeradius/3.0/mods-enabled/sqlippool

    Comente a linha 35
    descomente a linha 36

    Comente:
    # pool_key = "%{NAS-Port}"

    Descomente:
    pool_key = "%{Calling-Station-Id}"

    isso resolve parcialmente o problema, pois a query de allocate clear só apaga as informações se o nasipaddress daquele ip for o mesmo nasipaddress do nas que pedir autenticação, caso um nas com ip diferente peça autenticação o radius vai entregar o ip ao nas, só que não vai atualizar as informações daquele ip, fazendo assim que as informações continuem com informações de ip com lease duration vencido e o radius acaba entregando novamente o mesmo ip para outros pedidos de autenticações, para resolver isso editamos a query de allocate clear

    nano /etc/freeradius/3.0/mods-config/sql/ippool/mysql/queries.conf

    feche a query de allocate clear na linha 34, para fechar a query apagamos a contra e colocamos aspas duplas
    depois comente a linha 35

    ficando assim:

    allocate_clear = "\
    UPDATE ${ippool_table} \
    SET \
    nasipaddress = '', \
    pool_key = 0, \
    callingstationid = '', \
    username = '', \
    expiry_time = NULL \
    WHERE expiry_time <= NOW() - INTERVAL 1 SECOND"
    # AND nasipaddress = '%{Nas-IP-Address}'"



    por fim outro problema que ocasiona a duplicidade de ips é quando um ponto a ponto cai e fica fora do ar por um período maior do que a lease-duration, como o ponto a ponto ficou fora a torre perdeu a comunicação com o radius por conta disso não houve atualização de accounting e o radius acabou liberando os ips para outros clientes, só que o problema é que la na torre que caiu os clientes continuaram conectados, mantendo assim o mesmo ip que haviam pego e quando a torre volto houve a duplicidade de ips.

    e para resolver isso o jeito jeito é desconectar todos que estiverem com ips repetidos para que eles peguem outro ip, mas fazer isso manualmente seria ruim, começando que tu só iria se dar conta da duplicidade quando alguém ligasse falando que está sem internet.
    então a melhor maneira é colocar um script em cada torre fazendo com que a torre fique pingando para o radius a cada 3 ou 5 minutos e caso não obtenha resposta de ping o script desativa o serviço do pppoe e assim todos se desconectam e depois o script volta a reativar o serviço pppoe e quando os clientes voltarem a se conectar vao pegar um ip diferente do que tiam antes.

    # esse script pinga o radius a cada 3 minutos
    # se o mikrotik não obter resposta no ping
    # o mikrotik desativa o serviço pppoe
    # o serviço pppoe é reativado 1 minuto depois
    # isso é feito para evitar duplicidade de ips
    /tool netwatch
    add comment=reinicia-servico-pppoe down-script=\
    "/interface pppoe-server server disable [find name=service-pppoe]\r\
    \n:delay delay-time=1m;\r\
    \n/interface pppoe-server server enable [find name=service-pppoe]" host=172.16.0.202 interval=3m
    #
    #

    em name=service-pppoe troque o service-pppoe pelo nome que esta no seu serviço de pppoe e em host=172.16.0.202 coloque o ip do seu radius
    Última edição por Alex20cf; 20-06-2019 às 07:52.

  20. #20

    Padrão Re: Freeradius + PPPOE + ippool + mikrotik

    tu acabou de fazer a pergunta rapaz kkkkkk

    bom, só se esqueceu de falar no que precisa de ajuda