如何使用FreeRadius +LDAP实现验证功能
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章将为大家详细讲解有关如何使用FreeRadius +LDAP实现验证功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。------ LDAP 的部份 ---
千家信息网最后更新 2025年01月19日如何使用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安全错误
数据库的锁怎样保障安全
火鸟数据库用户名
公安局网络安全周记
徐汇区咨询软件开发报价表
网络安全视频课件视频下载
怀旧tbc服务器推荐
oracle数据库的配置
国产统信软件开发
金融科技对互联网模式的影响
微服务多少台服务器
软件开发需求建议
高级软件开发工程师求职信
山东戴尔服务器
校园网络安全问题图片
无锡市四季网络技术有限公司
徐州圆梦互联网科技有限公司
签订软件开发合同几天后悔了
服务器备份的重要性
成都 顶尖软件开发中心
海淀区质量软件开发供应
软件开发和服务
如何将文件只保留在服务器上
武隆住宿软件开发
看网络安全教育有感
软件开发最新招聘信息
云服务器月流量用完会怎样
中国人民大学报刊数据库
全境封锁2服务器连不进去怎么办
数据库无法连接jdbc
电脑服务器就是主机机箱吗
眉山景区管理软件开发