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

Eduardo Schoedler eschoedler at viavale.com.br
Wed Jun 3 00:05:55 -03 2009


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