问题描述
有人可以帮助我使用 freeradius 和 ldap 吗?
我有一个这样的 ldap:https://i.imgur.com/zXVPQZb.png
我在 debian buster (10) 上使用 freeradius 3。这是我第一次使用 freeradius。 Radius 客户端是一个 mikrotik 路由器,我需要使用 radius 来验证和授权 vpn 用户。
身份验证没问题,但为了授权,我需要从 freeradius 向 mikrotik 路由器返回一个参数名称“Framed-Pool”。
Framed-Pool 的内容必须是用户所在组的名称。在我的情况下,该组将是 vpn-users 或 vpn-admin。
freeradius -CX 的结果:https://pastebin.com/L0Kx9TiC 我配置另一个的部分来自初始设置 对于客户端(mikrotik 路由器):
client chr {
ipaddr = 172.22.3.254
require_message_authenticator = no
secret = <<< secret >>>
nas_type = "other"
proto = "udp"
limit {
max_connections = 16
lifetime = 0
idle_timeout = 30
}
}
对于 LDAP:
ldap {
server = "localhost"
port = 389
identity = "cn=admin,dc=test,dc=local"
password = <<< secret >>>
sasl {
}
user {
scope = "sub"
access_positive = yes
sasl {
}
}
group {
filter = "(objectClass=posixGroup)"
scope = "sub"
name_attribute = "cn"
membership_filter = "(|(memberUid=%{%{Stripped-User-Name}:-%{User-Name}}))"
cacheable_name = no
cacheable_dn = no
}
client {
scope = "sub"
base_dn = ""
}
profile {
}
options {
ldap_debug = 40
chase_referrals = yes
rebind = yes
net_timeout = 1
res_timeout = 10
srv_timelimit = 3
idle = 60
probes = 3
interval = 3
}
tls {
start_tls = no
}
}
如果我可以自动完成,那么当我将组添加到 ldap 时,我不想在 freeradius 配置中添加一些代码。
谢谢。
[编辑] 经过一些测试,我在 mods-enabled/ldap 中添加了这些配置:
ldap {
[...]
update {
control:Password-With-Header += 'userPassword'
reply:Framed-Pool := 'mail'
}
[...]
}
然后当我测试本地主机时:
radtest "user uid" "user password" localhost 1812 "mdp client freeradius localhost"
有了好的用户名和好的密码,我从radius那里得到了这个答案:
Sent Access-Request Id 150 from 0.0.0.0:39638 to 127.0.0.1:1812 length 73
User-Name = "cmc"
User-Password = "****"
NAS-IP-Address = 172.22.2.253
NAS-Port = 1812
Message-Authenticator = 0x00
Cleartext-Password = "****"
Received Access-Accept Id 150 from 127.0.0.1:1812 to 127.0.0.1:39638 length 37
Framed-Pool = "cmc@test.local"
所以没关系:我在答案中有框架池,但我需要 ldap 组名而不是邮件。
谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)