
Estoy tratando de limitar a cada usuario a un pequeño conjunto de ID de Mac en RADIUS, incluyendo directamente la información adecuada en el users
archivo. Sería aceptable incluso si cada usuario estuviera limitado a una Mac. El servidor ejecuta FreeRADIUS versión 2.1.12 desde los repositorios de Ubuntu 13.10. La autenticación utilizada es PEAP y MSCHAPv2.
Cuando un cliente físico (Nexus 5) intenta conectarse a través del punto de acceso (Netgear WG-102), FreeRADIUS parece identificar el ID de Mac en la solicitud de acceso, pero no lo usa en las comprobaciones. Los únicos dispositivos en la red en mi configuración de prueba actual son el servidor Radius, el punto de acceso y un cliente de prueba. Las entradas del users
archivo están configuradas como:
testuser NT-Password := "<hash>", Calling-Station-Id == "a1b2c3d4e5f6"
El policy.conf
archivo tiene una rewrite.calling_station_id
función que normaliza los ID de Mac al formato anterior y se llama available-sites/default
inmediatamente después preprocess
. Los mac-id con el formato correcto aparecen en el registro al ejecutar freeradius -X
. Sin embargo, las solicitudes son rechazadas. Incluso si la verificación se reemplaza por Calling-Station-Id =* "a1b2c3d4e5f6"
, que se supone que debe aprobarse siempre que el atributo exista, las solicitudes se rechazan. Sin embargo, si se reemplaza por Calling-Station-Id !* "a1b2c3d4e5f6"
, que se supone que pasa solo si el atributo esnopresente en la solicitud, las solicitudes son aceptadas.
Por el contrario, si uso radclient
, se observa el comportamiento esperado. Los archivos de configuración y los registros relevantes están vinculados a continuación. Toda la /etc/freeradius
carpeta está vinculada y también contiene los registros de los siguientes cuatro casos. Tenga en cuenta que el número 2 es el único comportamiento inesperado:
nexus-without-mac-success
: Elusers
archivo no tuvo comprobaciones de Mac y la autenticación se realizó correctamente.nexus-with-mac-fail
: Elusers
archivo tenía la dirección mac correcta y la autenticación fallóradclient-with-mac-expected-behaviour-fail-with-wrong
: radclient se ejecuta con una dirección mac incorrecta y se rechaza:echo "User-Name=testuser,User-Password=test,Calling-Station-Id=8c:3a:e3:19:70:0e" | radclient localhost auth testing123
radclient-with-mac-expected-behaviour-success-with-correct
: radclient se ejecuta con la dirección mac correcta y se acepta:echo "User-Name=testuser,User-Password=test,Calling-Station-Id=8c:3a:e3:19:70:0f" | radclient localhost auth testing123
¿No es posible usarlo Calling-Station-Id
de esta manera? Contrariamente ahttp://wiki.freeradius.org/guide/Mac-Auth, Quiero tener los ID de Mac limitados por usuario, por lo que si tiene un método alternativo para hacer esto, también sería bienvenido.
http://portmasters.com/tech/docs/radius/userinfo.html#1004825Parece decir que esta es la forma correcta de hacerlo, aunque está escrito en 1999.
http://www.cmi.ac.in/~ronno/freeradius-testcontiene lo siguiente:
freeradius
- contenidos de/etc/freeradius
logs
- los cuatro registros descritos anteriormentewg102.cfg
- la configuración del punto de accesosnapshot.tar.gz
- tarball que contiene todo lo anterior
Respuesta1
No ha enviado los atributos de la solicitud externa al servidor interno.
Establecer copy_tunnel_request = yes
en eap{peap{}}
(en eap.conf o mods-available/eap).
https://github.com/FreeRADIUS/freeradius-server/blob/master/raddb/mods-available/eap#L594
La llamada de archivos en el servidor interno no tiene acceso al atributo Calling-Station-ID en la solicitud externa, no coincide con ninguna entrada y, por lo tanto, no establece el atributo de control NT-Password.