Como usar o Calling-Station-Id por usuário no freeRADIUS?

Como usar o Calling-Station-Id por usuário no freeRADIUS?

Estou tentando limitar cada usuário a um pequeno conjunto de Mac-IDs no RADIUS, incluindo diretamente as informações apropriadas no usersarquivo. Seria aceitável mesmo que cada usuário estivesse limitado a um Mac. O servidor está executando o FreeRADIUS versão 2.1.12 dos repositórios Ubuntu 13.10. A autenticação utilizada é PEAP e MSCHAPv2.

Quando um cliente físico (Nexus 5) tenta se conectar através do ponto de acesso (Netgear WG-102) então o FreeRADIUS parece identificar os Mac-id's na solicitação de acesso, mas não os utiliza nas verificações. Os únicos dispositivos na rede na minha configuração de teste atual são o servidor radius, o ponto de acesso e um cliente de teste. As entradas no usersarquivo são configuradas como:

testuser   NT-Password := "<hash>", Calling-Station-Id == "a1b2c3d4e5f6"

O policy.confarquivo possui uma rewrite.calling_station_idfunção que normaliza os ids do Mac para o formato acima e é chamada available-sites/defaultlogo após preprocess. Os mac-id formatados corretamente aparecem no log de execução freeradius -X. No entanto, os pedidos são rejeitados. Mesmo que a verificação seja substituída por Calling-Station-Id =* "a1b2c3d4e5f6", que deveria passar sempre que o atributo simplesmente existir, as solicitações serão rejeitadas. Se, no entanto, for substituído por Calling-Station-Id !* "a1b2c3d4e5f6", que deverá passar apenas se o atributo fornãopresente na solicitação, as solicitações são aceitas.

Por outro lado, se eu usar radclient, o comportamento esperado será observado. Os arquivos de configuração e logs relevantes estão vinculados abaixo. A /etc/freeradiuspasta inteira está vinculada e também contém os logs dos quatro casos a seguir. Observe que o número 2 é o único comportamento inesperado:

  1. nexus-without-mac-success: O usersarquivo não teve verificações mac e a autenticação foi bem-sucedida
  2. nexus-with-mac-fail: O usersarquivo tinha o endereço MAC correto e a autenticação falhou
  3. radclient-with-mac-expected-behaviour-fail-with-wrong: radclient é executado com endereço MAC errado e é rejeitado:echo "User-Name=testuser,User-Password=test,Calling-Station-Id=8c:3a:e3:19:70:0e" | radclient localhost auth testing123
  4. radclient-with-mac-expected-behaviour-success-with-correct: radclient é executado com endereço MAC correto e é aceito:echo "User-Name=testuser,User-Password=test,Calling-Station-Id=8c:3a:e3:19:70:0f" | radclient localhost auth testing123

Não é possível usar Calling-Station-Iddesta forma? Contrário ahttp://wiki.freeradius.org/guide/Mac-Auth, quero que os Mac-Ids sejam limitados por usuário; portanto, se você tiver um método alternativo para fazer isso, isso também será bem-vindo.

http://portmasters.com/tech/docs/radius/userinfo.html#1004825parece dizer que esta é a maneira correta de fazer isso, embora tenha sido escrito em 1999.

http://www.cmi.ac.in/~ronno/freeradius-testcontém o seguinte:

  • freeradius- conteúdo de/etc/freeradius
  • logs- os quatro logs descritos acima
  • wg102.cfg- a configuração do ponto de acesso
  • snapshot.tar.gz- tarball contendo todos os itens acima

Responder1

Você não alimentou os atributos da solicitação externa para o servidor interno.

Definido copy_tunnel_request = yesem eap{peap{}}(em eap.conf ou mods-available/eap).

https://github.com/FreeRADIUS/freeradius-server/blob/master/raddb/mods-available/eap#L594

A chamada de arquivos no servidor interno não tem acesso ao atributo Calling-Station-ID na solicitação externa, não corresponde a nenhuma entrada e, portanto, não configura o atributo de controle NT-Password.

informação relacionada