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

Botelho, Marco Antônio Faria mafbotelho em gmail.com
Quarta Junho 3 07:18:42 BRT 2009


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 em 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