Freeradius 从 ldap 组名返回信息

问题描述

有人可以帮助我使用 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 组名而不是邮件

我不想将组名添加到 ldap 的用户字段中。

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)