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

    Integração captive portal + freeradius + postgresql

    Scheduled Pinned Locked Moved Portuguese
    13 Posts 2 Posters 3.7k 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.
    • R
      reinaldo.feitosa
      last edited by

      Pelo que sei o nome da tabela tem como você configurar na aba SQL (padrão é radcheck), mas os nomes dos campos não achei onde muda. A estrutura da tabela radcheck para mysql é a seguinte:

      CREATE TABLE radcheck (
        id int(11) unsigned NOT NULL AUTO_INCREMENT,
        username varchar(64) NOT NULL DEFAULT '',
        attribute varchar(64) NOT NULL DEFAULT '',
        op char(2) NOT NULL DEFAULT '==',
        value varchar(253) NOT NULL DEFAULT '',
        PRIMARY KEY (id),
        KEY username (username(32))
      ) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8;

      O que pode fazer é criar uma view com este nome e com esta estrutura alimentando os campos com estes valoes
      username = ID
      Op = ":="
      Value = CPF
      Se conseguir cirar uma view vai resolver sua situação

      Aqui tem a base do que precisa http://wiki.freeradius.org/guide/SQL-HOWTO#Create-PostgreSQL-Database

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

        Obrigado Reinaldo….estou vendo o material e pensando como fazer.....
        Ate entao nao tinha usado o Freeradius, estou vendo como ele funciona bem....
        Ate peguei o modulo: Integração Freeradius ao captive portal e squid da sysquad ( http://sys-squad.com/sys/curso/48), que o marcelo ministra....Ja deu uma boa luz para quem era um zero a esquerda nesse ponto...
        Estou pensando em talvez colocar o Freeradius em um servidor separado, de forma que possa alterar as configurações dele e consultar essa base ( so divagação, nao sei como funciona bem ainda)...
        Ou talvez um  sistema  intermediario em php-postgresql que faça a consulta a esse meu sistema existente e copie pra uma tabela com os campos usados pelo freeradius.. tambem so divagação, me parece retrabalho desnessário....

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

          Marcos, bom dia!

          Eu desenvolvi um monitor em Delphi que faz a leitura em um banco MSSQL(Faculdade) e alimenta o banco do freeradius e outro que lê um banco firebird(Hotel) e alimenta o freeradius.

          Os dois sistema estão funcionando a um bom tempo.

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

            Reinaldo, eu estava vendo se teria como fazer isso so com o pfsense e o freeradius dele, sem precisar de um sistema intermediario….Mas acho que nao vai rolar....
            Eu brinquei com delphi a uns 10 anos atras quando estava no tecnico...rss...depois nao mexi mais.....
            Como o sistema e base rodam em windows seria uma opção interessante....fazer um monitor pra ler essa base do postgresql e alimentar o freeradius do pfsense..... 8)
            Ando meio enferrujado em programação e desenvolvimento ( mais de um ano afastado disso).....vamos ver o que aparece... ;D

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

              Atualizando…
              Vendo este artigo:
              http://www.vivaolinux.com.br/artigo/Freeradius-servidor-radius-eficiente-e-completo?pagina=4

              Entendi melhor como funciona o freeradius, e como ele autentica numa base de dados.
              Pelo visto vou precisar criar um banco de dados com as tabelas do freeradius, e uma aplicação/monitor que leia consulte a minha base postgresl atual, faça o tratamento das variaveis e alimente a base usado pelo freeradius.
              Onde o username do freeradius vai ser o campo cpf da minha base e o passawrd o campo registro.

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

                Bom, fiz um pouco diferente. Criei uma vm basica com apache-php-mysql, criei a base do freeradius no mysql (usei o exemplo que vem no pacote do freeradius do centos), e um script que consulta a base postgres e insere os dados nessa do freeradius do mysql ( depois de pronto coloco o codigo aqui).
                Tenho o pfsese 2.2.24 64 bits, instalei o pacote do freeradius, mas ele nao inicia…vi nos logs esses erros:
                ep 16 12:48:47 radiusd[18985]: Failed to load virtual server <default>Sep 16 12:48:47 radiusd[18985]: /usr/local/etc/raddb/sites-enabled/default[69]: Errors parsing authorize section.
                Sep 16 12:48:47 radiusd[18985]: /usr/local/etc/raddb/sites-enabled/default[185]: Failed to parse "sql" entry.
                Sep 16 12:48:47 radiusd[18985]: /usr/local/etc/raddb/sites-enabled/default[185]: Failed to find "sql" in the "modules" section.
                Sep 16 12:48:47 radiusd[18985]: /usr/local/etc/raddb/sql.conf[2]: Instantiation failed for module "sql"

                Lembro de ter visto algo no forum, mas nao consegui achar mais…....</default>

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

                  Você liberou o msql da vm para receber conexão externas?

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

                    Ola Reinaldo, liberei sim pois antes de liberar ele dava tambem que nao pode conectar ao servidor mysql root@ip…etcc...
                    Depois que liberei ficou esse erro ainda....

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

                      No seu MySql tem a tabela NAS? Se não tiver a tabela NAS tem duas soluções, ou vc cria ela pelo script da pagina do projeto freeradius ou desmarque a opção cliente na Guia SQL do FreeRadius.

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

                        Humm…vou ver se tem essa tabela, usei o  /etc/raddb/sql/mysql/schema.sql  da instalação do freeradius de um centos para criar as tabelas no mysql.....

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

                          Ola Reinaldo, agora que consegui retomar isso.
                          Nao tem a tabela NAS
                          as tabelas que tenho no banco radius:
                          | radacct          |
                          | radcheck        |
                          | radgroupcheck    |
                          | radgroupreply    |
                          | radpostauth      |
                          | radreply        |
                          | radusergroup

                          Que sao as tabelas do schema.sql

                          Agora usei
                          mysql> SOURCE /etc/raddb/sql/mysql/nas.sql

                          E criou a tabela nas….
                          Vamos ver se agora vai....

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

                            Ajustes feitos…foi agora...
                            Detalhe, o campo: attribute da tabela radcheck precisa ser colocado como User-Password

                            Estou sem o script aqui, depois coloco ( sao so umas 10 linhas de php)

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