如何使用FreeRadius +LDAP实现验证功能
发表于:2025-11-10 作者:千家信息网编辑
千家信息网最后更新 2025年11月10日,这篇文章将为大家详细讲解有关如何使用FreeRadius +LDAP实现验证功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。------ LDAP 的部份 ---
千家信息网最后更新 2025年11月10日如何使用FreeRadius +LDAP实现验证功能
# filter: uid=radiususer
# requesting: ALL
#
# radiususer, People, Study-area.org
dn: uid=radiususer,ou=People,o=Study-area.org
uid: radiususer
cn: radiususer
objectClass: account
objectClass: posixAccount
objectClass: top
userPassword:: e2NyeXB0fU1EdTdVYlVZalVGQ0k=
uidNumber: 10070
gidNumber: 10002
homeDirectory: /home/radiususer
loginShell: /bin/bash
在這邊要特別注意的是,我之前裡面有多定義一個 objectClass ,反而造成系統無法認證,該 objectClass 如下:代碼:
objectClass: shadowAccount
有這個就會引發下面這個錯誤,可以在/var/log/radius/radius.log :代碼:
Fri Sep 1 09:03:16 2006 : Auth: rlm_unix: [radiususer]: invalid password
--------- radius server 部份 ----------
基本上,如果你在 CentOS 4.3 裡面,只要用以下命令安裝即可:代碼:
yum install freeradius
,我之前有在 Fedora Core 4 上面安裝,結果發現少了一個重要的lib,rlm_ldap.so,所以最好在你安裝 FreeRadius 之後檢查一下:代碼:
find / -name rlm_ldap.so
在確認以上該有的環境與函式庫都具備之後,我們接著修改下面的幾個部份:
在 radius.conf 部份引言回覆:
代碼:
ldap {
server = "127.0.0.1"
identity = "cn=admin,o=My Org,c=UA"
password = mypass
basedn = "o=People,o=Study-area.org"
filter = "(uid=%{Stripped-User-Name:-%{User-Name}})"
access_attr = "people"
dictionary_mapping = ${raddbdir}/ldap.attrmap
ldap_connections_number = 5
password_attribute = userPassword
}
上面各個設定應該很清楚,小弟就不多說明了。
在 authorize 區塊裡面,記得開啟 LDAP 認證:代碼:
authorize {
ldap
}
代碼:
authenticate {
Auth-Type LDAP {
ldap
}
}
注意,以上這兩個區塊裡面,LDAP功能預設都是關閉的,必須自己開啟!
clients.conf引言回覆:
再來,在 clients.conf 裡面的設定,找個地方新增認證子機的設定(以下內容,為原始的設定範例,此地僅用來說明與講解):代碼:
client 192.168.0.0/16 {
secret = testing123-2
shortname = private-network-2
}
這個區塊裡面,我們定義了,在 192.168.x.x 這整個網段裡面,子機驗證用的密碼為testing123-2,還有用來形容的稱呼為private-network-2。其中,密碼很重要,因為等等會用到。
proxy.conf引用:此外,還需要設定 proxy.conf ,用來對應「網域」帳號的部份:代碼:
realm NULL {
type = radius
authhost = LOCAL
accthost = LOCAL
nostrip
}
realm study-area.org {
type = radius
authhost = LOCAL
accthost = LOCAL
}
在這裡,我設定了兩個部份。一個是帳號名稱不帶「網域」的,也就是例如 radiususer 這樣的帳號;另外一個,study-area.org 的部份,就是讓使用者所輸入的帳號,看起來像這樣子 [email]radius@study-area.org[/email]。
等這些設定完成之後,我們啟動 FreeRadius 服務,然後用下面的指令來檢查一下是否可以透過 ldap 來完成帳號驗證功能:代碼:
radtest username userPassword Radius-Server_IP 0 secret-password
要特別注意的是,在Radius-Server_IP 後面那個 0,是數字;在其後的 secret-password 是我們在 clients.conf 裡面設定的,子機驗證用的密碼。我先前在網路上找到的文章,很多在這部份都有錯誤的範例。
如果一切順利,就會輸出這樣的畫面:代碼:
# radtest radiususer radius-password localhost 0 testing123-2
Sending Access-Request of id 53 to 127.0.0.1:1812
User-Name = "radiususer"
User-Password = "radius-password"
NAS-IP-Address = machine-name
NAS-Port = 0
rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=53, length=20
如果是子機驗證用的密碼錯誤,則會輸出以下的資訊:代碼:
radtest radiususer radius-password localhost 0 testing123-2
Sending Access-Request of id 6 to 127.0.0.1:1812
User-Name = "radiususer"
User-Password = "radius-password"
NAS-IP-Address = machine-name
NAS-Port = 0
Re-sending Access-Request of id 6 to 127.0.0.1:1812
User-Name = "radiususer"
User-Password = "200px27347315pz222Y314U026434333"
NAS-IP-Address = machine-name
NAS-Port = 0
rad_recv: Access-Reject packet from host 127.0.0.1:1812, id=6, length=20
rad_decode: Received Access-Reject packet from 127.0.0.1:1812 with invalid signature (err=2)! (Shared secret is incorrect.)
这篇文章将为大家详细讲解有关如何使用FreeRadius +LDAP实现验证功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
------ LDAP 的部份 ---------
首先,當然是要一個完整、可以提供服務的LDAP系統,怎麼建置請參考小弟的筆記,在此就不多提了。
以小弟的環境為例,我的使用者 ldif 長得像下面這樣:代碼:
# extended LDIF
#
# LDAPv3
# base
# filter: uid=radiususer
# requesting: ALL
#
# radiususer, People, Study-area.org
dn: uid=radiususer,ou=People,o=Study-area.org
uid: radiususer
cn: radiususer
objectClass: account
objectClass: posixAccount
objectClass: top
userPassword:: e2NyeXB0fU1EdTdVYlVZalVGQ0k=
uidNumber: 10070
gidNumber: 10002
homeDirectory: /home/radiususer
loginShell: /bin/bash
在這邊要特別注意的是,我之前裡面有多定義一個 objectClass ,反而造成系統無法認證,該 objectClass 如下:代碼:
objectClass: shadowAccount
有這個就會引發下面這個錯誤,可以在/var/log/radius/radius.log :代碼:
Fri Sep 1 09:03:16 2006 : Auth: rlm_unix: [radiususer]: invalid password
--------- radius server 部份 ----------
基本上,如果你在 CentOS 4.3 裡面,只要用以下命令安裝即可:代碼:
yum install freeradius
,我之前有在 Fedora Core 4 上面安裝,結果發現少了一個重要的lib,rlm_ldap.so,所以最好在你安裝 FreeRadius 之後檢查一下:代碼:
find / -name rlm_ldap.so
在確認以上該有的環境與函式庫都具備之後,我們接著修改下面的幾個部份:
在 radius.conf 部份引言回覆:
代碼:
ldap {
server = "127.0.0.1"
identity = "cn=admin,o=My Org,c=UA"
password = mypass
basedn = "o=People,o=Study-area.org"
filter = "(uid=%{Stripped-User-Name:-%{User-Name}})"
access_attr = "people"
dictionary_mapping = ${raddbdir}/ldap.attrmap
ldap_connections_number = 5
password_attribute = userPassword
}
上面各個設定應該很清楚,小弟就不多說明了。
在 authorize 區塊裡面,記得開啟 LDAP 認證:代碼:
authorize {
ldap
}
代碼:
authenticate {
Auth-Type LDAP {
ldap
}
}
注意,以上這兩個區塊裡面,LDAP功能預設都是關閉的,必須自己開啟!
clients.conf引言回覆:
再來,在 clients.conf 裡面的設定,找個地方新增認證子機的設定(以下內容,為原始的設定範例,此地僅用來說明與講解):代碼:
client 192.168.0.0/16 {
secret = testing123-2
shortname = private-network-2
}
這個區塊裡面,我們定義了,在 192.168.x.x 這整個網段裡面,子機驗證用的密碼為testing123-2,還有用來形容的稱呼為private-network-2。其中,密碼很重要,因為等等會用到。
proxy.conf引用:此外,還需要設定 proxy.conf ,用來對應「網域」帳號的部份:代碼:
realm NULL {
type = radius
authhost = LOCAL
accthost = LOCAL
nostrip
}
realm study-area.org {
type = radius
authhost = LOCAL
accthost = LOCAL
}
在這裡,我設定了兩個部份。一個是帳號名稱不帶「網域」的,也就是例如 radiususer 這樣的帳號;另外一個,study-area.org 的部份,就是讓使用者所輸入的帳號,看起來像這樣子 [email]radius@study-area.org[/email]。
等這些設定完成之後,我們啟動 FreeRadius 服務,然後用下面的指令來檢查一下是否可以透過 ldap 來完成帳號驗證功能:代碼:
radtest username userPassword Radius-Server_IP 0 secret-password
要特別注意的是,在Radius-Server_IP 後面那個 0,是數字;在其後的 secret-password 是我們在 clients.conf 裡面設定的,子機驗證用的密碼。我先前在網路上找到的文章,很多在這部份都有錯誤的範例。
如果一切順利,就會輸出這樣的畫面:代碼:
# radtest radiususer radius-password localhost 0 testing123-2
Sending Access-Request of id 53 to 127.0.0.1:1812
User-Name = "radiususer"
User-Password = "radius-password"
NAS-IP-Address = machine-name
NAS-Port = 0
rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=53, length=20
如果是子機驗證用的密碼錯誤,則會輸出以下的資訊:代碼:
radtest radiususer radius-password localhost 0 testing123-2
Sending Access-Request of id 6 to 127.0.0.1:1812
User-Name = "radiususer"
User-Password = "radius-password"
NAS-IP-Address = machine-name
NAS-Port = 0
Re-sending Access-Request of id 6 to 127.0.0.1:1812
User-Name = "radiususer"
User-Password = "200px27347315pz222Y314U026434333"
NAS-IP-Address = machine-name
NAS-Port = 0
rad_recv: Access-Reject packet from host 127.0.0.1:1812, id=6, length=20
rad_decode: Received Access-Reject packet from 127.0.0.1:1812 with invalid signature (err=2)! (Shared secret is incorrect.)
关于"如何使用FreeRadius +LDAP实现验证功能"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
功能
小弟
篇文章
面的
验证
重要
使用者
引言
文章
更多
不错
原始
实用
清楚
也就是
内容
命令
地方
就是
指令
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
瀑布模型软件开发模型
ibm服务器来不了机
威海联想服务器总代理哪家服务好
网络安全工程师个人自述
服务器繁忙请联系管理员
民航网络安全管理条例
新手怎么学计算机网络技术
数据库费用排行
计算机平面设计与网络技术一样吗
软件开发全栈难不难学
代理服务器设置wifi
加拿大软件开发面试
恶魔之魂重制版服务器人多
单位网络安全隐患排查机制
模拟报警软件开发的原理
达梦数据库收集统计信息
戴尔机架式服务器26
软件开发自定义条形码
ps4服务器在香港的游戏
网络安全防范技术主要包括
数据库代理创建失败
浙江网络技术服务大概费用
数据库网络开发的优缺点
外文索引型数据库的是
工控系统网络安全实战电子版
国内财务数据库
不灵姐和小月服务器生存5集
我的世界梦之地服务器
数据库和网络安全的事件
网络安全宣传片的意义