[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