+ Responder ao Tópico



  1. #1

    Padrão Freeradius - adicionar 3º campo no login

    pessoal,

    Tenho um Freeradius rodando no meu hotspot, funciona que é uma beleza.

    Porem o loin é feito em 2 campos, usuário e senha. Como faço pra adicionar um 3º campo e fazer ele fazer a checagem por esse novo campo tamb'ém ? Quais tabelas/scripts eu tenho de alterar ?

    Implantei isso em um hotel e preciso fazer a tela do login ser Usuario, senha, Data Checkout.

    valeu.....

  2. #2

    Padrão Re: Freeradius - adicionar 3º campo no login

    Se não me falha a memória, a tabela seria a radcheck. E o arquivo será o sql.conf. Procure a parte de ACCT dentro do arquivo, que vais achar a linha que faz a consulta para checagem do usuário.

    Se ajudei, estrelinha pra mim!

  3. #3

    Padrão Re: Freeradius - adicionar 3º campo no login

    Uelsey,

    Realmente você acertou! olhando no sql.conf, depois tem de ir no /etc/freeradius/sql/mysql/ e nele editar o arquivo dialup.sql que é o utilizado por default pelo freer pra autenticação! Nele vai ter a query basica, dai basta modificar pra necessidade de cada um:

    Código :
    authorize_check_query = "SELECT id, username, attribute, value, op \
              FROM ${authcheck_table} \
              WHERE username = '%{SQL-User-Name}' \
              ORDER BY id"
     
     
            authorize_reply_query = "SELECT id, username, attribute, value, op \
              FROM ${authreply_table} \
              WHERE username = '%{SQL-User-Name}' \
              ORDER BY id"
    Nop meu caso, eu vou adicionar duas colunas na tabela radcheck do tipo data e no sql vou deixar assim:

    Código :
    authorize_check_query = "SELECT id, username, attribute, value, op \
              FROM ${authcheck_table} \
              WHERE username = '%{SQL-User-Name}'   AND (curdate()>=CheckIN AND curdate()<=CheckOUT) \
              ORDER BY id"

    Porem não sei se essa é a melhor maneira e nem a mais certa.

    meu problema hoje é que esse hotspot ta em um hotel, hoje cadastramos conforme o hospede faz checkin, porem meu problema é quando um hospede tem o mesmo sobrenome de outro e eles ficaram no mesmo quarto. Ex:

    Hospede1 = Sobrenome = Silva // apto 111 // checkin 1/1/2012 // checkout 1/2/2012
    Hospede2 = Sobrenome = Silva // apto 111 // chekin 1/1/2013 // checkout 1/2/2013

    Um ficou conosco em 2012 e o outro em 2013 , ambos no mesmo quarto 111

    No login do hotspot nos pedimos login (sobrenome) e a senha (nº apto), no caso, SILVA e 111 . Ou seja, se o hospede velho estiver proximo de nós, o login antigo dele irá funcionar junto do login do hospede atual.

    Minha ideia é modificar a tabela radcheck e adicionar 2 colunas (CheckIN e CheckOUT), dai o script que alimenta o freeradius vai fazer o INSERT com esses 2 parametros novos.

    Dai na tela de login, vou pedir o SobreNome, Apto e Data CheckOut e como eu modifiquei o script dialup.sql , ele so vai conseguir achar o SILVa certo, pois caso o antigo passe pelo hotel e tente logaar, ele não vai acertar a data de checkout do novo hospede, invalidando o login dele.

    So falei tudo isso caso alguem que trabalhe com hotel precise de algo parecido. Varios hoteis tem isso, porem não achei nenhuma solução pra fazer o usuario ser único , só adicionando a data na jogada.

    Pra base não crescer sem limite, posso fazer um script que roda todo começo de mes que apaga todos os usuarios com o CheckOUT data inferior ao mes corrente.

    Valeu !

  4. #4

    Padrão Re: Freeradius - adicionar 3º campo no login

    vc falou que a tela de login, pede o SobreNome, Apto e Data CheckOut, como vc passa esse CheckOut, diretamente no formulário html ??

    Citação Postado originalmente por 2fast4youbr Ver Post
    Uelsey,

    Realmente você acertou! olhando no sql.conf, depois tem de ir no /etc/freeradius/sql/mysql/ e nele editar o arquivo dialup.sql que é o utilizado por default pelo freer pra autenticação! Nele vai ter a query basica, dai basta modificar pra necessidade de cada um:

    Código :
    authorize_check_query = "SELECT id, username, attribute, value, op \
              FROM ${authcheck_table} \
              WHERE username = '%{SQL-User-Name}' \
              ORDER BY id"
     
     
            authorize_reply_query = "SELECT id, username, attribute, value, op \
              FROM ${authreply_table} \
              WHERE username = '%{SQL-User-Name}' \
              ORDER BY id"
    Nop meu caso, eu vou adicionar duas colunas na tabela radcheck do tipo data e no sql vou deixar assim:

    Código :
    authorize_check_query = "SELECT id, username, attribute, value, op \
              FROM ${authcheck_table} \
              WHERE username = '%{SQL-User-Name}'   AND (curdate()>=CheckIN AND curdate()<=CheckOUT) \
              ORDER BY id"

    Porem não sei se essa é a melhor maneira e nem a mais certa.

    meu problema hoje é que esse hotspot ta em um hotel, hoje cadastramos conforme o hospede faz checkin, porem meu problema é quando um hospede tem o mesmo sobrenome de outro e eles ficaram no mesmo quarto. Ex:

    Hospede1 = Sobrenome = Silva // apto 111 // checkin 1/1/2012 // checkout 1/2/2012
    Hospede2 = Sobrenome = Silva // apto 111 // chekin 1/1/2013 // checkout 1/2/2013

    Um ficou conosco em 2012 e o outro em 2013 , ambos no mesmo quarto 111

    No login do hotspot nos pedimos login (sobrenome) e a senha (nº apto), no caso, SILVA e 111 . Ou seja, se o hospede velho estiver proximo de nós, o login antigo dele irá funcionar junto do login do hospede atual.

    Minha ideia é modificar a tabela radcheck e adicionar 2 colunas (CheckIN e CheckOUT), dai o script que alimenta o freeradius vai fazer o INSERT com esses 2 parametros novos.

    Dai na tela de login, vou pedir o SobreNome, Apto e Data CheckOut e como eu modifiquei o script dialup.sql , ele so vai conseguir achar o SILVa certo, pois caso o antigo passe pelo hotel e tente logaar, ele não vai acertar a data de checkout do novo hospede, invalidando o login dele.

    So falei tudo isso caso alguem que trabalhe com hotel precise de algo parecido. Varios hoteis tem isso, porem não achei nenhuma solução pra fazer o usuario ser único , só adicionando a data na jogada.

    Pra base não crescer sem limite, posso fazer um script que roda todo começo de mes que apaga todos os usuarios com o CheckOUT data inferior ao mes corrente.

    Valeu !

  5. #5

    Padrão Re: Freeradius - adicionar 3º campo no login

    Pedro,

    Ainda não cheguei nessa parte... acho que não vai ser muito fácil, pois pelo hotspot do Mikrotik não sei se eu consigo adicionar algum campo e ele automaticamente fazer o post desse campo extra.

    Voce sabe de algo parecido ? se souber, posta aqui para nós.

    Conforme eu for conseguindo fazer, eu vou postar aqui o resultado.

    valeu....