FreeRadius is an implementation of RADIUS server. Its support multiple types of authentication. This article will help you to setup freeradius authentication with OpenLDAP.
Step 1: Setup OpenLDAP Server
First its required to setup openldap server to complete below setup. Use below link to install it.
Setup Openldap Server on CentOS, RHEL System
Step 2: Install freeradius Packages
Install all freeradius2 server packages on your system using following command.
# yum install freeradius2 freeradius2-utils freeradius2-ldap
Step 3: Download Schema File
Download radius ldap schema file and copy to ldap schema directory using below commands.
3.1 Download File
# wget http://open.rhx.it/phamm/schema/radius.schema
3.2 Copy file in schema directory
# cp radius.schema /etc/openldap/schema/
3.3 Include file in ldap configuration file
include /etc/openldap/schema/radius.schema
Step 4: Edit Radius LDAP Files
Edit radius ldap file
# vim /etc/raddb/modules/ldap
ldap { server = "openldap.example.com" basedn = "dc=example,dc=com" identity = "cn=Manager,ou=people,dc=example,dc=com" filter = "(uid=%{Stripped-User-Name:-%{User-Name}})" base_filter = "(objectclass=radiusprofile)" start_tls = no groupmembership_filter = "(|(&(objectClass=GroupOfNames)(member=%{Ldap-UserDn}))(&(objectClass=GroupOfUniqueNames)(uniquemember=%{Ldap-UserDn})))" profile_attribute = "radiusprofile" access_attr = "uid" dictionary_mapping = {raddbdir}/ldap.attrmap ldap_connections_number = 10 timeout = 4 timelimit = 5 net_timeout = 1 set_auth_type = yes }
Edit
# vim /etc/freeradius/ldap.attrmap
checkItem User-Password userPassword replyItem Tunnel-Type radiusTunnelType replyItem Tunnel-Medium-Type radiusTunnelMediumType replyItem Tunnel-Private-Group-Id radiusTunnelPrivateGroupId
Step 5: Enable LDAP Authentication
After updating above files, Lets enable LDAP authentication in
Auth-Type LDAP { ldap }
Step 6: Test Setup
Finally setup your setup by using following command
# radtest ldapuser1 password ldap.example.com 2 testing123 Sending Access-Request of id 165 to 127.0.0.1 port 1812 User-Name = "ldapuser1" User-Password = "password" NAS-IP-Address = 192.168.10.50 NAS-Port = 2 Message-Authenticator = 0x00000000000000000000000000000000 rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=165, length=64 Filter-Id = "Enterasys:version=1:policy=Enterprise User"
If you get
7 Comments
You can explain the user format in ldap, so that this configuration works
Great but it would be helpful if you showed actually adding a user to openldap. This is a section that is completely missed. I have know idea what attributes to give to a user
Please share the changes to be made in users.conf and clients.conf file.
Regars
You forgot to uncomment the line
#ldap
in /etc/freeradius/sites-available/default and /etc/freeradius/sites-available/inner-tunnel in step 5.
Without this option set Auth-Type isn’t set to ldap and the module ldap is not called resulting in an unauthorized authentication.
thanks for nice article….one question, can i monitor my users data and internet usage by using RADIUS with LDAP? i need my users log …..please help
Can you help how to install on debian?
As i cannot find the package and instructions for it,
You certainly have some agreeable opinions and views