Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    [Duvida] Informações minimas necessárias RADIUS Captive Portal

    Scheduled Pinned Locked Moved Portuguese
    19 Posts 5 Posters 3.2k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      tacioandrade
      last edited by

      @marcelloc:

      Tácio, olha o pacote freeradius2. Ele se integra perfeitamente com o Captive do pfSense.

      Marcelo estou instalando o freeradius2 num Debian, pois no nosso ambiente vai ser necessário algo customizado. Na instituição precisamos que os próprios usuários se cadastrem e que algum "administrador", através de uma interface web libere seu acesso.

      Estou usando o doloradius para conhecer alguns atributos do radius, como o de usuário e senha (e onde eles ficam), porem preciso saber quais são os mínimos necessários para que o captive portal do pfsense dê acesso, como por exemplo se é necessário um tempo minimo para logoff, qual o atributo usado para controle de banda, etc. =(

      O dialupadmin era uma ferramenta bem simplificada que poderia me ajudar a descobrir isso dai, porem ela não roda mais nas novas versões do php, da erro de cara e não abre nem as páginas. Para tentar resolver isso, vou ver se instalo alguma distro legada com php 4 pra ver se ele roda e consigo os argumentos que preciso. =)

      1 Reply Last reply Reply Quote 0
      • R
        reinaldo.feitosa
        last edited by

        Tacio, bom dia!

        Fiz algo parecido aqui, usei o freeradius2 do pfsense.

        Integrei ele com o usuário e senha do portal acadêmico da faculdade. Para isso fiz um programa em delphi que le os dados no Sql Server e salva no Mysql do do free radias, com isso não preciso fazer dois cadastro e os alunos nao precisam de duas senhas.

        A unica coisa necessaria para fazer o login é o usuário e senha na tabela radcheck, com os seguinte dados de exemplo
        username='aluno1'
        attribute='MD5-Password'
        o=':='
        value=MD5('senha')

        Populando esta tabela e configurando o CP ja é possível autenticar os usuários com o controle. agora se vc precisar criar grupo de usuários com mais de um grupo ai vc precisará popular as tabela radusergroup e radcheckgroup.

        1 Reply Last reply Reply Quote 0
        • T
          tacioandrade
          last edited by

          @reinaldo.feitosa:

          Tacio, bom dia!

          Fiz algo parecido aqui, usei o freeradius2 do pfsense.

          Integrei ele com o usuário e senha do portal acadêmico da faculdade. Para isso fiz um programa em delphi que le os dados no Sql Server e salva no Mysql do do free radias, com isso não preciso fazer dois cadastro e os alunos nao precisam de duas senhas.

          A unica coisa necessaria para fazer o login é o usuário e senha na tabela radcheck, com os seguinte dados de exemplo
          username='aluno1'
          attribute='MD5-Password'
          o=':='
          value=MD5('senha')

          Populando esta tabela e configurando o CP ja é possível autenticar os usuários com o controle. agora se vc precisar criar grupo de usuários com mais de um grupo ai vc precisará popular as tabela radusergroup e radcheckgroup.

          Reinaldo era EXATAMENTE isso dai que eu queria mesmo (de início), saber quais os campos mínimos necessários para o pfsense aceitar o acesso. No caso inicialmente meu objetivo era esse dai mesmo, porem na nossa rede nos temos múltiplos tipos de usuários: Alunos, Professores, Efetivos, Prestadores de serviço e Terceirizados… Por esse motivo o Diretor deu a ideia de um cadastro feito pelo próprio aluno com validação por parte do nosso setor.

          Obrigado mesmo pela dica, com certeza irá me ajudar e MUITO a resolver este problema e caso dê certo dou um retorno. =D

          Outra coisa, será que você teria como me disponibilizar algum tipo de contato para trocas de informações (se não for pedir demais, pode deixar que não sou de encher o saco. =))

          Abração.

          1 Reply Last reply Reply Quote 0
          • R
            reinaldo.feitosa
            last edited by

            @tacioandrade:

            Reinaldo era EXATAMENTE isso dai que eu queria mesmo (de início), saber quais os campos mínimos necessários para o pfsense aceitar o acesso. No caso inicialmente meu objetivo era esse dai mesmo, porem na nossa rede nos temos múltiplos tipos de usuários: Alunos, Professores, Efetivos, Prestadores de serviço e Terceirizados… Por esse motivo o Diretor deu a ideia de um cadastro feito pelo próprio aluno com validação por parte do nosso setor.

            Obrigado mesmo pela dica, com certeza irá me ajudar e MUITO a resolver este problema e caso dê certo dou um retorno. =D

            Outra coisa, será que você teria como me disponibilizar algum tipo de contato para trocas de informações (se não for pedir demais, pode deixar que não sou de encher o saco. =))

            Abração.

            Valeu, qualquer coisa estamos ai para tentar ajudar.
            No meu caso eu também tenho vários tipos de acessos, o que fiz foi importar os alunos pelo RA e os professores pelo CPF (tinha código de professor igual a aluno) e alem disso posso cadastrar outro usuários no próprio radius. Exemplo no mysql tem os alunos e professor, mas eu cadastrei o usuário reinaldo no freeradius. O radius procura o usuário na base dele para depois na base do mysql. Estou colocando isso para evitar um recadastro e retrabalho para administrar. Alem disso vc pode colocar alguns MAC no CP, passthru ou no próprio radius para não ter que logar.

            1 Reply Last reply Reply Quote 0
            • T
              tacioandrade
              last edited by

              @reinaldo.feitosa:

              @tacioandrade:

              Reinaldo era EXATAMENTE isso dai que eu queria mesmo (de início), saber quais os campos mínimos necessários para o pfsense aceitar o acesso. No caso inicialmente meu objetivo era esse dai mesmo, porem na nossa rede nos temos múltiplos tipos de usuários: Alunos, Professores, Efetivos, Prestadores de serviço e Terceirizados… Por esse motivo o Diretor deu a ideia de um cadastro feito pelo próprio aluno com validação por parte do nosso setor.

              Obrigado mesmo pela dica, com certeza irá me ajudar e MUITO a resolver este problema e caso dê certo dou um retorno. =D

              Outra coisa, será que você teria como me disponibilizar algum tipo de contato para trocas de informações (se não for pedir demais, pode deixar que não sou de encher o saco. =))

              Abração.

              Valeu, qualquer coisa estamos ai para tentar ajudar.
              No meu caso eu também tenho vários tipos de acessos, o que fiz foi importar os alunos pelo RA e os professores pelo CPF (tinha código de professor igual a aluno) e alem disso posso cadastrar outro usuários no próprio radius. Exemplo no mysql tem os alunos e professor, mas eu cadastrei o usuário reinaldo no freeradius. O radius procura o usuário na base dele para depois na base do mysql. Estou colocando isso para evitar um recadastro e retrabalho para administrar. Alem disso vc pode colocar alguns MAC no CP, passthru ou no próprio radius para não ter que logar.

              Pois é até o momento estou com os atributos projetados para serem utilizados:
              username, MD5-Password, NAS-IP-Address (Liberar acesso apenas para determinado NAS) e Auth-Type (Reject para quando o usuário tiver bloqueado, como início de semestre, sair da instituição, etc).

              Agora estou em busca de um atributo para controle de banda, pois isso dai para nós nesse momento é essencial, visto a quantidade de usuários crescentes e sem controle.

              Outra duvida por enquanto, no caso você colocou que usa as tabelas: radusergroup e radcheckgroup, isso dai é para criar regras diretamente para o grupo ou para que? E você descobriu para que servia cada uma das tabelas usando que material, ainda lembra?

              1 Reply Last reply Reply Quote 0
              • R
                reinaldo.feitosa
                last edited by

                usei este how to como base:

                http://www.serveradminblog.com/2011/12/freeradius-install-howto-4-populating-tables/

                Tem tudo o que vc precisa

                Se o limite de banda for o mesmo para todos usuarios é só configurar no CP mesmo. Ex. eu limitei todos Down 512kbps up 128kbps.

                1 Reply Last reply Reply Quote 0
                • T
                  tacioandrade
                  last edited by

                  @reinaldo.feitosa:

                  usei este how to como base:

                  http://www.serveradminblog.com/2011/12/freeradius-install-howto-4-populating-tables/

                  Tem tudo o que vc precisa

                  Se o limite de banda for o mesmo para todos usuarios é só configurar no CP mesmo. Ex. eu limitei todos Down 512kbps up 128kbps.

                  Reinaldo realmente não tinha pensado nessa possibilidade, não é o perfeito (pois queria limitar a banda por grupos, de forma que os professores e funcionários tivessem uma banda maior que os alunos por exemplo), porem caso não ache no Radius a opção correta vai ser a melhor forma de trabalhar mesmo. =)

                  E muito obrigado mesmo por esse link dai, dei uma olhada por cima agora e vi que tem exatamente o que preciso.

                  Abração e sucessos para você.

                  1 Reply Last reply Reply Quote 0
                  • R
                    reinaldo.feitosa
                    last edited by

                    @tacioandrade:

                    @reinaldo.feitosa:

                    usei este how to como base:

                    http://www.serveradminblog.com/2011/12/freeradius-install-howto-4-populating-tables/

                    Tem tudo o que vc precisa

                    Se o limite de banda for o mesmo para todos usuarios é só configurar no CP mesmo. Ex. eu limitei todos Down 512kbps up 128kbps.

                    Reinaldo realmente não tinha pensado nessa possibilidade, não é o perfeito (pois queria limitar a banda por grupos, de forma que os professores e funcionários tivessem uma banda maior que os alunos por exemplo), porem caso não ache no Radius a opção correta vai ser a melhor forma de trabalhar mesmo. =)

                    E muito obrigado mesmo por esse link dai, dei uma olhada por cima agora e vi que tem exatamente o que preciso.

                    Abração e sucessos para você.

                    Boa noite. Esta no link que postei, mas vamos lá, vou facilitar um pouco.
                    Para criar limites por grupo você terá que poplular duas tabelas conforme abaixo:

                    INSERT INTO radgroupreply (id ,groupname ,attribute ,op ,value )
                    VALUES (NULL , 'professores', 'Ascend-Xmit-Rate', ':=', '524288'),
                    (NULL , 'professores', 'Ascend-Data-Rate', ':=', '131072');

                    'Ascend-Xmit-Rate'=Downlod
                    'Ascend-Data-Rate'=Upload

                    INSERT INTO radusergroup (username ,groupname ,priority )
                    VALUES ('professor1', 'professores', '1');

                    Acho agora ficou claro

                    1 Reply Last reply Reply Quote 0
                    • T
                      tacioandrade
                      last edited by

                      @reinaldo.feitosa:

                      @tacioandrade:

                      @reinaldo.feitosa:

                      usei este how to como base:

                      http://www.serveradminblog.com/2011/12/freeradius-install-howto-4-populating-tables/

                      Tem tudo o que vc precisa

                      Se o limite de banda for o mesmo para todos usuarios é só configurar no CP mesmo. Ex. eu limitei todos Down 512kbps up 128kbps.

                      Reinaldo realmente não tinha pensado nessa possibilidade, não é o perfeito (pois queria limitar a banda por grupos, de forma que os professores e funcionários tivessem uma banda maior que os alunos por exemplo), porem caso não ache no Radius a opção correta vai ser a melhor forma de trabalhar mesmo. =)

                      E muito obrigado mesmo por esse link dai, dei uma olhada por cima agora e vi que tem exatamente o que preciso.

                      Abração e sucessos para você.

                      Boa noite. Esta no link que postei, mas vamos lá, vou facilitar um pouco.
                      Para criar limites por grupo você terá que poplular duas tabelas conforme abaixo:

                      INSERT INTO radgroupreply (id ,groupname ,attribute ,op ,value )
                      VALUES (NULL , 'professores', 'Ascend-Xmit-Rate', ':=', '524288'),
                      (NULL , 'professores', 'Ascend-Data-Rate', ':=', '131072');

                      'Ascend-Xmit-Rate'=Downlod
                      'Ascend-Data-Rate'=Upload

                      INSERT INTO radusergroup (username ,groupname ,priority )
                      VALUES ('professor1', 'professores', '1');

                      Acho agora ficou claro

                      Reinaldo foi mal mesmo, semana passada foi complicado por aqui por conta deste novo projeto que não me excluiu dos trabalhos normais do setor e dei uma olhada no artigo porem acho que pulei essa parte, focando apenas na descrição das tabelas e não na parte de controle de banda.

                      Agora já sei como implementar tudo o que preciso e assim que concluir dou um retorno por aqui.

                      Obrigado mais uma vez e sucessos em seus projetos.

                      1 Reply Last reply Reply Quote 0
                      • A
                        alandnc
                        last edited by

                        Bom dia pessoal,

                        Estou tentando colocar o freeradius pra funcionar junto com mysql, porem ele só funciona criando os usuários no próprio freradius, quando ativo a aba sql só dar usuário não encontrado, ja desabilitei a opção do nas e não funciona. alguém poderia me ajudar?

                        1 Reply Last reply Reply Quote 0
                        • R
                          reinaldo.feitosa
                          last edited by

                          @alandnc:

                          Bom dia pessoal,

                          Estou tentando colocar o freeradius pra funcionar junto com mysql, porem ele só funciona criando os usuários no próprio freradius, quando ativo a aba sql só dar usuário não encontrado, ja desabilitei a opção do nas e não funciona. alguém poderia me ajudar?

                          Posta os logs do freeradius (Status->System Logs) use o filtro "radius"

                          1 Reply Last reply Reply Quote 0
                          • marcosjostM
                            marcosjost
                            last edited by

                            Ola Alan, de uma olhada no meu topico abaixo tive alguns problemas na intregração do freeradius com msyql tambem, o reinaldo deu umas dicas que ajudaram, ve se resolve para voce.

                            https://forum.pfsense.org/index.php?topic=98294

                            1 Reply Last reply Reply Quote 0
                            • A
                              alandnc
                              last edited by

                              Obrigado pela Ajuda, segue log:

                              Oct 10 20:22:21 radiusd[87810]: rlm_sql (sql): Attempting to connect rlm_sql_mysql #4
                              Oct 10 20:22:21 radiusd[87810]: rlm_sql_mysql: Starting connect to MySQL server for #4
                              Oct 10 20:22:21 radiusd[87810]: rlm_sql_mysql: Couldn't connect socket to MySQL server root@192.168.1.5:radius
                              Oct 10 20:22:21 radiusd[87810]: rlm_sql_mysql: Mysql error 'Can't connect to MySQL server on '192.168.1.5' (61)'
                              Oct 10 20:22:21 radiusd[87810]: rlm_sql (sql): Failed to connect DB handle #4
                              Oct 10 20:22:21 radiusd[87810]: rlm_sql (sql): There are no DB handles to use! skipped 5, tried to connect 1
                              Oct 10 20:22:21 radiusd[87810]: Invalid user: [00:0c:29:a0:c3:23] (from client captiveportal port 2064 cli 00:0c:29:a0:c3:23)
                              Oct 10 20:22:22 radiusd[87810]: rlm_sql (sql): There are no DB handles to use! skipped 5, tried to connect 0
                              Oct 10 20:22:22 radiusd[87810]: Invalid user: [00:0c:29:a0:c3:23] (from client captiveportal port 2064 cli 00:0c:29:a0:c3:23)
                              Oct 10 20:22:28 radiusd[87810]: rlm_sql (sql): There are no DB handles to use! skipped 5, tried to connect 0
                              Oct 10 20:22:28 radiusd[87810]: Invalid user: [00:0c:29:a0:c3:23] (from client captiveportal port 2064 cli 00:0c:29:a0:c3:23)
                              Oct 10 20:22:29 radiusd[87810]: rlm_sql (sql): There are no DB handles to use! skipped 5, tried to connect 0
                              Oct 10 20:22:29 radiusd[87810]: Invalid user: [alan] (from client captiveportal port 2064 cli 00:0c:29:a0:c3:23)
                              Oct 10 20:22:30 radiusd[87810]: rlm_sql (sql): There are no DB handles to use! skipped 5, tried to connect 0
                              Oct 10 20:22:30 radiusd[87810]: Invalid user: [00:0c:29:a0:c3:23] (from client captiveportal port 2064 cli 00:0c:29:a0:c3:23)

                              1 Reply Last reply Reply Quote 0
                              • R
                                reinaldo.feitosa
                                last edited by

                                Pelo log o freeradius não está conseguindo conectar no seu mysql. Tudo indica que é problema permissão do usuário root que não tem permissão para conectar pela rede. Por default o usuário root só tem permissão para conectar através do localhost.

                                No meu caso eu criei um usuario radius com permissão para conectar de qualquer host.

                                Verifica as permissões e tenta iniciar o freeradius.

                                1 Reply Last reply Reply Quote 0
                                • A
                                  alandnc
                                  last edited by

                                  Boa tarde Reinado,

                                  Tinha percebido depois que era banco, realmente era a permissão, estava colocando o nome do pfsense sem o .dominio. Agora foi.

                                  Com relação a aplicação que fez para coletar dados dos mssql e escrever no mysql. poderia descrever como fez?

                                  Grato a todos pela ajuda.

                                  1 Reply Last reply Reply Quote 0
                                  • R
                                    reinaldo.feitosa
                                    last edited by

                                    Desenvolvi uma aplicação em delphi que lê os dados no mssql e grava os dados necessário no mysql(radius).
                                    A aplicação fica rodando em background e a cada 30 segundos lê todos os usuários do  mssql e compara com os dados do mysql se houve alteração na senha, faz o update do resgistro e se não existe no mysql inclui o mesmo. Neste caso preciso verificar a senha, pois os alunos podem alterar a senha no portal acadêmico. Coloquei uma opção para ler somente os registros novos, alterados ou incluído na base mssql, para isso preciso de um parâmetro com data e hora da inclusão/alteração da senha. No meu caso não foi possível usar, pois o programa acadêmico não estava gravando data e hora para as alterações de senha, somente para a inclusão de novos alunos. Mesmo lendo toda a base é muito rápido ele gasta cerca de 5 segundos para ler aproximadamente 2300 alunos e fazer as alterações caso necessário.

                                    1 Reply Last reply Reply Quote 0
                                    • A
                                      alandnc
                                      last edited by

                                      Reinaldo,

                                      No meu cado a aplicação vai ler uma tabela no mssql onde contem numero quarto e numero de reservas e inserir no mysql o numero do quarto como id e numero reserva como senha, se não for pedir demais teria como compartilhar a aplicação? estamos tentando desenvolver uma aqui também, mas já que tem nos ajudaria abastante.

                                      Grato,

                                      1 Reply Last reply Reply Quote 0
                                      • First post
                                        Last post
                                      Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.