使用OpenLDAP设置FreeRadius身份验证

时间:2019-05-19 01:26:07  来源:igfitidea点击:

FreeRadius是RADIUS服务器的一个实现。
它支持多种类型的身份验证。
本文将使用OpenLDAP设置freeradius身份验证。

步骤1:设置OpenLDAP服务器

首先需要安装设置openldap服务器

步骤2:安装freeradius包

使用以下命令在系统上安装所有freeradius2服务器包。

# yum install freeradius2 freeradius2-utils freeradius2-ldap

步骤3:下载模式文件

下载radius ldap模式文件并使用以下命令复制到ldap模式目录。
3.1 下载文件

# wget http://open.rhx.it/phamm/schema/radius.schema

3.2 在schema目录下复制文件

# cp radius.schema /etc/openldap/schema/

3.3 包含文件/etc/openldap/slapd.conf中的ldap配置文件

include /etc/openldap/schema/radius.schema

步骤4:编辑LDAP文件

编辑radius ldap文件/etc/raddb/modules/ldap,并添加下面ldap服务器信息。

# 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
}

编辑/etc/freeradius/ldap.attrmap文件

# vim /etc/freeradius/ldap.attrmap

checkItem User-Password userPassword
replyItem Tunnel-Type radiusTunnelType
replyItem Tunnel-Medium-Type radiusTunnelMediumType
replyItem Tunnel-Private-Group-Id radiusTunnelPrivateGroupId

步骤5:启用LDAP身份验证

在更新以上文件之后,在/etc/raddb/site-available/inner-tunnel和/etc/raddb/site -available/default中, 取消下面的注释来启用的LDAP身份验证。

Auth-Type LDAP {
       ldap
}

步骤6:测试设置

最后,使用以下命令设置安装程序

# 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"

如果是rad_recv: Access-Accept,那么说明身份验证成功。