从 FreeRADIUS 和 OpenLDAP 发送 VSA
Posted
技术标签:
【中文标题】从 FreeRADIUS 和 OpenLDAP 发送 VSA【英文标题】:Sending VSAs from FreeRADIUS and OpenLDAP 【发布时间】:2021-09-23 03:21:39 【问题描述】:这可能看起来很简单,但不幸的是,在仔细阅读文档后,它并不清楚,因此我们将不胜感激。
简而言之,我想返回一个 VSA 以响应身份验证请求。 VSA 是用于虚拟路由器的瞻博网络 VSA,对于供应商 ID 4874 显示为 26-1。在 LDAP 配置中,我有以下适用于标准 RADIUS 属性的内容。
update
control:Password-With-Header += 'userPassword'
reply:Reply-Message := 'radiusReplyMessage'
reply:Framed-IP-Address := 'radiusFramedIPAddress'
reply:Framed-IP-Netmask := 'radiusFramedIPNetmask'
reply:Framed-MTU := 'radiusFramedMTU'
#reply:Vendor_Specific[1] := 'radiusJuniperVirtualRouter'
# Where only a list is specified as the RADIUS attribute,
# the value of the LDAP attribute is parsed as a valuepair
# in the same format as the 'valuepair_attribute' (above).
control: += 'radiusControlAttribute'
request: += 'radiusRequestAttribute'
reply: += 'radiusReplyAttribute'
返回
[root@ldapm01 sites-available]# radtest -x -4 -P udp testaccount2 password 127.0.0.1 1 testing123
Sent Access-Request Id 193 from 0.0.0.0:46100 to 127.0.0.1:1812 length 82
User-Name = "testaccount2"
User-Password = "password"
NAS-IP-Address = 10.0.0.17
NAS-Port = 1
Message-Authenticator = 0x00
Cleartext-Password = "password"
Received Access-Accept Id 193 from 127.0.0.1:1812 to 0.0.0.0:0 length 38
Framed-IP-Address = 10.0.0.2
Framed-IP-Netmask = 255.255.255.255
Framed-MTU = 1500
所以 FreeRADIUS 和 LDAP 正在工作。我需要解决的是
#reply:
注意:juniper 的可用字典仅支持供应商 ID 2636,因此我必须创建一个新的字典文件。
【问题讨论】:
【参考方案1】:好的,我找到了答案,其实很简单。这是在适当的字典中找到属性名称并将其用作参考的问题。字典名称是唯一的,通常是字典名称后跟的属性名称。 在我的例子中,我必须在字典目录(Centos 7,/usr/share/freeradius)中查找我需要的企业 ID,在我的例子中是 dictinary.erx 4874(感谢供应商整合)。
这里是 ldap 配置
update
control:Password-With-Header += 'userPassword'
reply:Reply-Message := 'radiusReplyMessage'
reply:Framed-IP-Address := 'radiusFramedIPAddress'
reply:Framed-IP-Netmask := 'radiusFramedIPNetmask'
reply:Framed-MTU := 'radiusFramedMTU'
reply:ERX-Virtual-Router-Name := 'radiusVRF'
# Where only a list is specified as the RADIUS attribute,
# the value of the LDAP attribute is parsed as a valuepair
# in the same format as the 'valuepair_attribute' (above).
然后我还必须创建一个匹配的 LDAP 架构条目来支持附加值,在我的例子中,我只是通过添加以下内容来扩展 FreeRADIUS 架构
olcAttributeTypes: 65( 1.3.6.1.4.1.11344.4.1.2.1.67 NAME 'radiusVRF' DESC 'requestItem: $GENERIC$' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
然后将其添加到 olcObjectClasses 列表的末尾
olcObjectClasses: 0( 1.3.6.1.4.1.11344.4.3.2.1 NAME 'radiusprofile' DESC '' SUP top AUXILIARY MAY ( radiusArapFeatures $ radiusArapSecurity $ radiusArapZoneAccess $ radiusAuthType $
radiusCallbackId $ radiusCallbackNumber $radiusCalledStationId $ radiusCallingStationId $ radiusClass $ radiusClientIPAddress $ radiusFilterId $ radiusFramedAppleTalkLink $ radiusFramedAppleTalkNetwork $
radiusFramedAppleTalkZone $ radiusFramedCompression $ radiusFramedIPAddress $ radiusFramedIPNetmask $ radiusFramedIPXNetwork $ radiusFramedMTU $radiusFramedProtocol $ radiusAttribute $
radiusFramedRoute $ radiusFramedRouting $ radiusIdleTimeout $ radiusGroupName $ radiusHint $ radiusHuntgroupName $ radiusLoginIPHost $ radiusLoginLATGroup $ radiusLoginLATNode $ radiusLoginLATPort $
radiusLoginLATService $ radiusLoginService $ radiusLoginTCPPort $ radiusLoginTime $ radiusPasswordRetry $ radiusPortLimit $ radiusPrompt $ radiusProxyToRealm $ radiusRealm $ radiusReplicateToRealm $
radiusServiceType $ radiusSessionTimeout $ radiusStripUserName $ radiusTerminationAction $ radiusTunnelClientEndpoint $ radiusProfileDN $ radiusSimultaneousUse $ radiusTunnelAssignmentId $
radiusTunnelMediumType $ radiusTunnelPassword $ radiusTunnelPreference $ radiusTunnelPrivateGroupId $ radiusTunnelServerEndpoint $ radiusTunnelType $ radiusUserCategory $ radiusVSA $ radiusExpiration $
dialupAccess $ radiusNASIpAddress $ radiusReplyMessage $ radiusControlAttribute $ radiusReplyAttribute $ radiusRequestAttribute $ radiusNasId $ radiusVRF ) )
现在它给了我以下内容
radtest -x -4 -P udp testaccount1 password 127.0.0.1 1 testing123
Sent Access-Request Id 24 from 0.0.0.0:49135 to 127.0.0.1:1812 length 82
User-Name = "testaccount1"
User-Password = "password"
NAS-IP-Address = 10.0.0.17
NAS-Port = 1
Message-Authenticator = 0x00
Cleartext-Password = "password"
Received Access-Accept Id 24 from 127.0.0.1:1812 to 0.0.0.0:0 length 48
Framed-IP-Address = 10.0.0.1
Framed-IP-Netmask = 255.255.255.255
Framed-MTU = 1500
juniper-unisphere-Virtual-Router = "12"
【讨论】:
以上是关于从 FreeRADIUS 和 OpenLDAP 发送 VSA的主要内容,如果未能解决你的问题,请参考以下文章