freeradius使用ldap服务器做认证

noteId: 2C0F0E6422BD4E169C159444137A0FCB · 原始路径:/ALL/Linux - A模块/服务配置/Freeradius/other 配置/freeradius使用ldap服务器做认证.note

1、debian 13配置:

apt install freeradius freeradius-ldaphostname radius #一定要重命名,不然后面测试连接用户会报错ln -s /etc/freeradius/3.0/mods-available/ldap /etc/freeradius/3.0/mods-enabled/ #启用ldap模块 //必须写绝对路径,否则ln会出问题

vim etc/freeradius/3.0/sites-enabled/defaultauthorize { ... 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:

scope参数:base //只查这一条DN下的对象,不查看子节点one //只查这一条DN 和 下一层的子节点children //只查所有子节点,不查自己sub //递归查询所有子节点(默认,并且最常用)

组存储路径,默认继承最上面的 base_dn,如果组和用户不在同一路径,旧直接修改这里的 base_dn = "ou=group,dc=rapa,dc=local"

2、(debian 12配置)配置并连接ldap服务器

apt install freeradius freeradius-ldaphostname radius #一定要重命名,不然后面测试连接用户会报错ln -s /etc/freeradius/3.0/mods-available/ldap /etc/freeradius/3.0/mods-enabled/ #启用ldap模块 //必须写绝对路径,否则ln会出问题

/etc/freeradius/3.0/sites-enabled/default

使用:/定位authorize { ... ldap ...}authenticate { ... Auth-Type LDAP { ldap } ...}##这边的authorize大概在285行左右,authenticate大概在580行左右

将ldap使用的ca根证书添加到radius服务器中mkdir -p /etc/freeradius/3.0/tls/mv /root/ca.crt /etc/freeradius/3.0/tls/

/etc/freeradius/3.0/mods-enabled/ldap

ldap { server = 'ldaps://ldap.itnsa.cn:636' identity = 'cn=admin,dc=itnsa,dc=cn' password = Skills39 base_dn = 'dc=itnsa,dc=cn' tls { #这条需要额外添加 ca_file = /etc/freeradius/3.0/tls/ca.crt # } # user { base_dn = 'ou=users,dc=itnsa,dc=cn' filter = '(uid=%{%{Stripped-User-Name}:-%{User-Name}})' } group { base_dn = 'ou=groups,dc=itnsa,dc=cn filter = '(objectClass=posixGroup)' membership_filter = '(memberUid=%{%{Stripped-User-Name}:-%{User-Name}})' } profile { base_dn = 'ou=profiles,dc=itnsa,dc=cn } client { base_dn = 'ou=devices,dc=itnsa,dc=cn' filter = '(objectClass=ieee802Device)' attribute = 'macAddress' #这条需要额外添加,不添加会认证失败 }}

/etc/freeradius/3.0/clients.conf #这边可以按照题目要求更改密码

该密码是用于radius服务器与用户之间认证使用的

测试

radtest user01 Skills39 localhost 1812 testing123

freeradius -XC #测试命令是否正确

freeradius -X #查看服务是否报错

可能的报错解决方案:

在使用radtest命令测试连接时连接不上,查使用freeradius查看报错Failed binding to auth address * port 1812 bound to server defalt: address already in use /etc/freeradius/3.0/sites-enabled/default[59]: Error binding to port for 0.0.0.0 port 1812可以使用ss -tunlp | grep 1812kill -9 [pid]再重新使用radtest命令重新连接一下

使用radtest报错显示(0)Error parsing "stdin": Failed resolving "debian" to IPv4 address: Name or service not known需要使用hostnameclt hostname [名称]更改一下