Bonjour, Le Thursday 07 January 2021 10:31:27 Christian VAN DER ZWAARD a écrit : > Je suis chargé de mettre en place de l’authentification et du VLAN > assignment sur le réseau avec un serveur RADIUS et annuaire LDAP. J’ai > choisi FreeRADIUS et OpenLDAP. L’authentification fonctionne mais je sèche > au niveau de l’attribution du VLAN. > > Je n’arrive pas à créer une nouvelle object class custom dans l’annuaire et > je ne sais pas comment "dire" au RADIUS où il doit récupérer le numéro de > VLAN.
La plupart des switchs supportent la RFC3580. En gros, il faut ajouter Tunnel-Type, Tunnel-Medium-Type et Tunnel-Private- Group-ID dans la réponse. Exemple rapide en utilisant le schema dans les sources de freeradius : doc/schemas/ldap/openldap/freeradius.schema Avec ce LDIF minimal : ##################### dn: ou=radius,dc=example,dc=com objectClass: organizationalUnit dn: ou=users,ou=radius,dc=example,dc=com objectClass: organizationalUnit dn: ou=profiles,ou=radius,dc=example,dc=com objectClass: organizationalUnit dn: cn=phone,ou=users,ou=radius,dc=example,dc=com objectClass: simpleSecurityObject objectClass: radiusprofile objectClass: organizationalRole userPassword: {CLEAR}clearpassword radiusTunnelPrivateGroupId: 2 radiusReplyAttribute: Cisco-AVPair = "device-traffic-class=voice" dn: cn=vlan18,ou=users,ou=radius,dc=example,dc=com objectClass: simpleSecurityObject objectClass: radiusprofile objectClass: organizationalRole userPassword: {CLEAR}clearpassword18 radiusTunnelPrivateGroupId: 18 dn: cn=default-vlan,ou=profiles,ou=radius,dc=example,dc=com objectClass: radiusObjectProfile objectClass: radiusprofile radiusTunnelType: VLAN radiusTunnelMediumType: IEEE-802 ##################### Et cette configuration de freeradius (voir la conf par défaut pour les commentaires) : ##################### ldap ldap-8021x { server = "ldaps://ldap.example.com" base_dn = 'dc=example,dc=com' valuepair_attribute = 'radiusAttribute' update { control:Password-With-Header += 'userPassword' reply:Tunnel-Type := 'radiusTunnelType' reply:Tunnel-Medium-Type := 'radiusTunnelMediumType' reply:Tunnel-Private-Group-ID := 'radiusTunnelPrivategroupId' control: += 'radiusControlAttribute' request: += 'radiusRequestAttribute' reply: += 'radiusReplyAttribute' } user { base_dn = "ou=users,ou=radius,${..base_dn}" filter = "(&(objectClass=simpleSecurityObject)(cn=%{%{Stripped-User- Name}:-%{User-Name}}))" } profile { filter = '(objectclass=radiusprofile)' default = "cn=default-vlan,ou=profiles,ou=radius,${..base_dn}" } } ##################### Attention, si on utilise un EAP "tunnel" comme PEAP ou TTLS, il faut aussi décommenter les sections update dans la section post-auth du site inner-tunnel afin de copier les attributs dans la réponse envoyée au client. Testé et validé pour du HPe/aruba (2530), Cisco (2960G), et dell (N1500/os9). Pour avoir en plus des vlans taggés (mode general / trunk / switch), c'est plus complexe (RFC4675) et beaucoup moins bien supporté, ca dépend du constructeur ... > Je suis preneur si vous avez des liens intéressants à ce sujet. Je n'ai rien trouvé de très utile avec ldap, mais pour les vlans : https://wiki.freeradius.org/vendor/HP#procurve-port-authentication-special-features_dynamic-vlan-assignment --------------------------- Liste de diffusion du FRnOG http://www.frnog.org/