freeradius使用ldap服务器做认证,Cisco IOS调用radius进行认证.note

noteId: WEB4e3ea9f663c044ce982207718cd0071c · 原始路径:/ALL/Linux - A模块/服务配置/Freeradius/freeradius使用ldap服务器做认证,Cisco IOS调用radius进行认证.note · 图片:12 · 附件待处理:0

 
 
 
 
一、配置 radius:
 
·注意:freeradius如果解析不了配置文件中的 ldap 地址,重启就会报错。
 
 
1、配置 radius连接LDAP:
apt install -y freeradius freeradius-ldap
 
# 设置允许访问的客户端地址和预共享密钥:
vim /etc/freeradius/3.0/clients.conf
 
# 启用 LDAP认证:
vim /etc/freeradius/3.0/sites-enabled/default
 
# 指定ldap服务器地址和凭据:
vim /etc/freeradius/3.0/mods-available/ldap
如果允许匿名登陆就无需指定凭据,如果不允许匿名登陆就需要指定凭据
 
# 启用刚刚配置的 ldap配置文件:
## 创建一个软链接:
cd /etc/freeradius/3.0
ln mods-available/ldap mods-enabled
或者:
cp mods-available/ldap mods-enabled
chown freerad:freerad mods-enabled/ldap
systemctl restart freeradius
 
# 测试:
radtest donald abc123 localhost 1812 testing123
## 因为localhost默认的预共享密钥是 testing123,如果是客户端要连接,就要使用上面定义的预共享密钥
 
 
2、针对 LDAP 用户进行 组过滤、单独用户权限分配:
 
(1)仅允许 net OU进行访问:
这个很简单,直接将 base_dn限制在指定OU下即可
vim /etc/freeradius/3.0/mods-enabled/ldap
systemctl restart freeradius
 
·测试:
# 可以看到,只有net OU下的用户能够通过测试:
radtest net1 Skill39 localhost 1812 testing123
 
 
(2)仅允许 net1 LDAP组访问:
在读取ldap用户时,只读取 gidNumber等于 10003的用户即可(我们这里net1组的gidNumber是1003)
vim /etc/freeradius/3.0/mods-enalbed/ldap
一个括号表示一个条件
& 表示 and(和),定义的条件必须都满足才可以(这个符号必须加)
因为这里定义了多个条件,因此最外面需要加一个括号把它们括起来(这个括号必须加)
 
 
·本地命令测试:
radtest net1 Skill39 localhost 1812 testing123
 
 
 
(3)对不同的 ldap 用户、组 进行 Cisco-AVPair 权限分配:
 
 
 
 
 
 
·配置文件详解:
vim etc/freeradius/3.0/sites-enabled/default
authorize {
    ...
    ldap    //470行
    ...
}
 
authenticate {
    ...
    # 取消这三行注释(615行)
    Auth-Type LDAP {
            ldap                
    }
    ...
}
 
vim /etc/freeradius/3.0/mods-enabled/ldap
## 这里是389不加密端口的配置:
## :%s/dc=example,dc=org/dc=rapa,dc=local
 
用户存储的dn路径,默认不需要改,默认继承最上面定义的 base_dn
 
# filter参数:openldap是默认的 postixGroup,AD域就是 group
# scope参数:
base    //只查这一条DN下的对象,不查看子节点
one    //只查这一条DN 和 下一层的子节点
children    //只查所有子节点,不查自己
sub    //递归查询所有子节点(默认,并且最常用)
组存储路径,默认继承最上面的 base_dn,如果组和用户不在同一路径,旧直接修改这里的 base_dn = "ou=group,dc=rapa,dc=local"