[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