[GTER] Freeradius: atributos de checagem do grupo não funcionam

Eduardo Schoedler eschoedler at viavale.com.br
Wed Jun 3 10:50:34 -03 2009


Olá Marco!

Eu já havia descomentado essa linha... e ele realmente está fazendo a 
consulta sql nas tabelas de grupo.
Porém, não trabalha da forma de que eu necessito.

Vou mudar o sql de authorize_check_query para trazer junto os atributos de 
verificação do grupo, pois é nesse instante que ele autentica 
(Access-Accept) o usuário.

Abraço.


----- Original Message ----- 
From: "Botelho, Marco Antônio Faria" <mafbotelho at gmail.com>
To: "Grupo de Trabalho de Engenharia e Operacao de Redes" 
<gter at eng.registro.br>
Sent: Wednesday, June 03, 2009 7:18 AM
Subject: Re: [GTER]Freeradius: atributos de checagem do grupo não funcionam


> Eduardo, bom dia!
>
> Verifique dentro do arquivo sql.conf a opção read_group:
>
>        # If set to 'yes' (default) we read the group tables
>        # If set to 'no' the user MUST have Fall-Through = Yes in the
> radreply table
>        # read_groups = yes
>
> Botelho, Marco Antônio Faria
>
> 2009/6/3 Eduardo Schoedler <eschoedler at viavale.com.br>
>
>> Pessoal.
>>
>> Andei fazendo mais alguns testes...
>>
>> Aparentemente, os atributos de verificação por grupos só serve para dizer
>> ao FR quando enviar ou não atributos de retorno do grupo ao NAS.
>> Não consegui fazer qualquer verificação de atributos utilizando a tabela
>> radgroupcheck.
>>
>> Abaixo, segue um exemplo.
>>
>> 'test-user' pertence ao grupo 'test-group'.
>>
>> Na tabela de radgroupcheck, adicionei a seguinte "regra":
>> 'test-group' => Framed-Protocol == PPP
>>
>> Na tabela de radgroupreply, adicionei um atributo de retorno:
>> 'test-group' => Idle-Timeout <= 600
>>
>> Então começou a funcionar... mas não do jeito que eu imaginava ou
>> precisava.
>> Quando enviei 'Framed-Protocol' na requisição, ele respondia o atributo
>> especificado no grupo.
>>
>> Na verdade, eu precisaria que ele rejeitasse (Access-Reject) se a
>> requisição não tivesse 'Framed-Protocol' ou então o valor desse atributo
>> fosse diferente de PPP.
>>
>> # radtest test-user test-pass localhost 0 testing123 1
>> Sending Access-Request of id 110 to 127.0.0.1 port 1812
>>       User-Name = "test-user"
>>       User-Password = "test-pass"
>>       NAS-IP-Address = 127.0.0.1
>>       NAS-Port = 0
>>       Framed-Protocol = PPP
>> rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=110,
>> length=26
>>       Idle-Timeout = 600
>>
>> Quando mandava sem, ele respondia Access-Accept de qualquer jeito... mas
>> não retornava 'Idle-Timeout'.
>>
>> # radtest test-user test-pass localhost 0 testing123
>> Sending Access-Request of id 12 to 127.0.0.1 port 1812
>>       User-Name = "test-user"
>>       User-Password = "test-pass"
>>       NAS-IP-Address = 127.0.0.1
>>       NAS-Port = 0
>> rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=12,
>> length=20
>>
>> Ou seja: se eu quiser recusar qualquer login a partir dos atributos da
>> requisição, terei de adicionar atributos em usuário por usuário.... nada
>> prático e muito suscetível a erros por parte do operador.
>>
>> Acredito que uma solução seria alterar a consulta SQL de
>> authorize_check_query ... talvez um UNION trazendo junto os atributos do
>> radgroupcheck.
>> Não é a melhor solução, mas acho que funcionaria.
>>
>> Abraços. 




More information about the gter mailing list