Autenticazione utenti tramite EAP-MD5 con FreeRadius e LDAP

Per poter attuare quanto descritto il queste pagine, occorre avere pronto un sistema con un database LDAP. Tale sistema deve essere modificato per potersi integrare con FreeRadius, quindi occorre includere al file di configurazione di LDAP il file radius.schema. Aggiungiamo al file /etc/ldap/slapd.confquesta riga:

nano /etc/ldap/slapd.conf
include /etc/ldap/schema/radius.schema

Copiamo il file radius.schema nella directory dove si trovano gli altri schema, quindi riavviamo il server LDAP.


cp radius.schema /etc/ldap/schema
/etc/init.d/slapd restart

Ora possiamo avviare l’installazione sul sistema di FreeRadius utilizzando i pacchetti forniti con Debian.

apt-get install freeradius freeradius-ldap -y

Per comodità creiamo un utente radius in locale, per controllare il corretto funzionamento di FreeRadius indipendentemente da LDAP. Dopo la creazione del nuovo utente occorre riavviare il servizio radius.

nano /etc/freeradius/users
testuser Auth-Type := Local, User-Password == "password" 

/etc/init.d/freeradius restart

Eseguendo il comando radtest, possiamo verificare il funzionamento di radius con l’utente appena creato.

radtest testuser password localhost 1812 testing123

Dovremmo ricevere un messaggio simile a questo, che ci conferma il corretto funzionamento.

Sending Access-Request of id 166 to 127.0.0.1 port 1812
User-Name = "testuser"
User-Password = "password"
NAS-IP-Address = 255.255.255.255
NAS-Port = 1812
rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=166, length=20

Ora possiamo attivare in radius il supporto per LDAP. Occorre specificare le impostazioni per connettersi al server LDAP e in quali campi andare a cercare le informazioni per autenticare gli utenti.

nano /etc/freeradius/radiusd.conf
log_auth = yes
log_auth_badpass = yes
log_auth_goodpass = yes
ldap {
server = "192.168.0.7"
identity = "cn=admin,dc=ced,dc=local"
password = pwdads31
basedn = "dc=ced,dc=local"
filter = "(uid=%{Stripped-User-Name:-%{User-Name}})"
base_filter = "(objectclass=posixAccount)"
start_tls = no
#access_attr = "dialupAccess"
password_attribute = userPassword
} 

authorize {
ldap
} 

authenticate {
Auth-Type PAP {
pap
} 

#
#  Most people want CHAP authentication
#  A back-end database listed in the 'authorize' section
#  MUST supply a CLEAR TEXT password.  Encrypted passwords
#  won't work.
Auth-Type CHAP {
chap
} 

#
#  MSCHAP authentication.
Auth-Type MS-CHAP {
mschap
}
#  Allow EAP authentication.
eap
}

Per il corretto funzionamento dell’autenticazione degli utenti occorre modificare due file ed aggiungere rispettivamente queste istruzioni, quindi riavviare FreeRadius.

nano /etc/freeradius/dictionary
#    Non-Protocol Integer Translations
VALUE           Auth-Type               Local                   0
VALUE           Auth-Type               System                  1
VALUE           Auth-Type               SecurID                 2
VALUE           Auth-Type               Crypt-Local             3
VALUE           Auth-Type               Reject                  4
VALUE           Auth-Type               ActivCard               5
VALUE           Auth-Type               LDAP                    6


nano /etc/freeradius/ldap.attrmap
checkItem   User-Password                userPassword
replyItem   Tunnel-Type                  radiusTunnelType
replyItem   Tunnel-Medium-Type           radiusTunnelMediumType
replyItem   Tunnel-Private-Group-Id      radiusTunnelPrivateGroupId

Ora tutto è pronto per poter autenticare gli utenti tramite 802.1x e EAP-MD5. Per qualche motivo che ancora non capisco, gli utenti presenti nel database LDAP devono avere impostato il campo password in CLEAR altrimenti non si avrà l’autenticazione dell’utente. E’ ovvio che il supporto per l’autenticazione 802.1x deve essere impostato sulla porta dello switch che ci collega alla LAN (oppure nell’Access Point wireless). I test di autenticazione sono stati condotti con macchine Windows XP Pro SP2 e uno switch Cisco Catalyst della famiglia 2950.

  • Facebook
  • Google Bookmarks
  • Windows Live Favorites
  • LinkedIn
  • Delicious
  • Hotmail
  • Twitter
  • Windows Live Spaces
  • Yahoo Bookmarks
  • Yahoo Messenger
  • Share/Bookmark
  1. Nessun commento ancora...
  1. Nessun trackback ancora...

Spam Protection by WP-SpamFree