无论用户提交的密码如何,我都需要在 FreeRADIUS 上配置一个用户进行身份验证并生成访问接受。我可以看到如何为所有用户执行此操作,但如何为单个用户执行此操作?
我正在尝试使用 PEAP-MSChapv2 将我的 Microsoft Server 2016 网络策略服务器配置修复为半径服务器。
众所周知,一些现代设备无法“验证”服务器证书,因为该选项太弱并且已被禁用(例如某些android 11 设备)
据我所知,应该有向这些(非域)设备添加内部 CA 证书的解决方案,以便它们可以验证 nps 服务器证书(并避免管理客户端证书)。
我发现由内部 CA 颁发的 nps 服务器证书,并且该内部 CA 的证书是自签名的(由自己颁发)。我尝试导出 ca 证书(不带私钥),并将其导入设备中,但现在,没有成功我收到错误 22:服务器无法处理 Eap 类型或错误 265:颁发了证书链由不受信任的权威
不清楚我是否仅在将客户端上的字段域更改为仅在 nps 服务器证书的 cn 名称中的 FQDN 的域时才获得 265。
我怎样才能正确实现这一点(PEAP-MSchapv2 在非域客户端上具有服务器身份验证)?
注意:现在它可以正常工作,对于“旧”无线客户端:它们正确地作为 AD 用户进行身份验证,并获得网络访问权限,所以我希望只为这些较新的设备更正设置,而不是从根本上改变它。
我已经阅读了很多关于将 Strongswan 验证为 SQL/PAM 的内容,但找不到任何想法/解决方案如何针对已经有大量使用 bcrypt+salt 加密的用户名和密码组合的数据库进行身份验证。我不知道明文密码,所以我不明白如何启动它。
我编写了一个自定义 Radius 服务器(使用 pyrad),但它只支持 PAP,这在当今不是一个好的解决方案。所以基本上,通过这个解决方案,我能够实现我的目标,但它真的不安全。在每个客户端中,我都必须禁用 MSCHAPv2 并仅启用 PAP。
我已经为此搜索了几天,但对我来说,如果没有明文密码,似乎不可能对它们进行身份验证。也许我不了解整个过程,但我还没有为我的案例找到任何解决方案。用我的 SQL 数据尝试了 Freeradius,但密码的存储方式与 Freeradius 期望的不同。
你能推荐如何实现这一目标的技术/想法吗?
我想以某种方式对它们进行身份验证。
谢谢!
我在我的网络的 Windows Server 2019 上运行 NPS 服务器。我使用它作为管理员在我的 Cisco C9300 交换机中进行身份验证,以便对其进行操作。最近我无法登录,因为它说我没有经过身份验证。这是我尝试通过 SSH 连接到交换机时获得的 NPS 日志的副本。
<Event>
<Timestamp data_type="4">12/14/2020 14:42:20.610</Timestamp>
<Computer-Name data_type="1">RADIUS-SERVER</Computer-Name>
<Event-Source data_type="1">IAS</Event-Source>
<User-Name data_type="1">user</User-Name>
<NAS-IP-Address data_type="3">192.168.0.10</NAS-IP-Address>
<Client-IP-Address data_type="3">192.168.0.10/Client-IP-Address>
<Client-Vendor data_type="0">0</Client-Vendor>
<Client-Friendly-Name data_type="1">SWITCHA01</Client-Friendly-Name>
<Proxy-Policy-Name data_type="1">NPS-Cisco</Proxy-Policy-Name>
<Provider-Type data_type="0">1</Provider-Type>
<SAM-Account-Name data_type="1">DOMAIN\user</SAM-Account-Name>
<Fully-Qualifed-User-Name data_type="1">DOMAIN\user</Fully-Qualifed-User-Name>
<Authentication-Type data_type="0">1</Authentication-Type>
<Class data_type="1">311 1 192.168.0.15 12/14/2020 17:46:50 8</Class>
<Packet-Type data_type="0">1</Packet-Type>
<Reason-Code data_type="0">0</Reason-Code>
</Event>
<Event>
<Timestamp data_type="4">12/14/2020 14:42:20.610</Timestamp>
<Computer-Name data_type="1">RADIUS-SERVER</Computer-Name>
<Event-Source data_type="1">IAS</Event-Source>
<Class data_type="1">311 1 192.168.0.15 12/14/2020 17:46:50 8</Class>
<Authentication-Type data_type="0">1</Authentication-Type>
<Client-IP-Address data_type="3">192.168.0.10</Client-IP-Address>
<Client-Vendor data_type="0">0</Client-Vendor>
<Client-Friendly-Name data_type="1">INSTRU-SWITCHA01</Client-Friendly-Name>
<Proxy-Policy-Name data_type="1">NPS-Cisco</Proxy-Policy-Name>
<Provider-Type data_type="0">1</Provider-Type>
<SAM-Account-Name data_type="1">DOMAIN\user</SAM-Account-Name>
<Fully-Qualifed-User-Name data_type="1">DOMAIN\user</Fully-Qualifed-User-Name>
<Packet-Type data_type="0">3</Packet-Type>
<Reason-Code data_type="0">16</Reason-Code>
</Event>
NPS 服务器目前配置为我们 PAP 作为身份验证,以查看我是否可以进入,但它一直给我原因代码 16,这是未身份验证。我可以做些什么来使用我的域管理员帐户以管理员身份回到我的交换机?
抱歉,这里是半径新手……
我尝试获取由 NixOS 打包运行的 FreeRadius 服务器版本 3.0.20,以对 dlink 接入点上的用户进行身份验证。我正在运行启用了调试日志记录的服务器。
我从默认配置开始并遵循入门指南。所以我添加了testing
使用testing Cleartext-Password := "password"
. 我可以确认此身份验证使用radtest testing password 127.0.0.1 0 testing123
. 我也将其视为日志文件中的成功登录。– 酷,到目前为止有效。
接下来,我尝试使用相同的用户和密码通过接入点进行身份验证。所以我添加了接入点的IP,并在接入点中clients.conf
配置了radius服务器和共享密钥。
client ap2 {
ipaddr = 192.168.1.32
secret = testing123
}
尝试进行身份验证时,我看到请求进入 tcpdump,但 FreeRadius 完全忽略了它:没有记录任何内容。
为了交叉检查并验证 radius 服务器不仅在 localhost 上侦听,我添加了另一个非 localhost-client 并radtest
再次使用该源 IP:一切仍然有效。
再次检查tcpdump
这是工作请求:
192.168.1.144.57243 > 192.168.1.144.1812: [bad udp cksum 0x84d7 -> 0x44fd!] RADIUS, length: 77
Access-Request (1), id: 0x2c, Authenticator: 106b49030bec802e1bd156ff48e3589a
User-Name Attribute (1), length: 9, Value: testing
0x0000: 7465 7374 696e 67
User-Password Attribute (2), length: 18, Value:
0x0000: d112 7b01 9c70 9548 d4a1 db33 c648 739e
NAS-IP-Address Attribute (4), length: 6, Value: 127.0.1.1
0x0000: 7f00 0101
NAS-Port Attribute (5), length: 6, Value: 0
0x0000: 0000 0000
Message-Authenticator Attribute (80), length: 18, Value: &7u...s..L....|..
0x0000: 2637 75c2 ead6 73cc d64c ee9f a97c d8d7
这是来自 FreeRadius 的回应:
192.168.1.144.1812 > 192.168.1.144.57243: [bad udp cksum 0x849e -> 0x427b!] RADIUS, length: 20
Access-Accept (2), id: 0x2c, Authenticator: 750e916c6b56f85eed550088c6cf30fc
相比之下,这是来自 DLink 的请求:
192.168.1.32.36759 > 192.168.1.144.1812: [udp sum ok] RADIUS, length: 103
Access-Request (1), id: 0x6a, Authenticator: e7e4df28fcd96772ffb508c4df564d
User-Name Attribute (1), length: 9, Value: testing
0x0000: 7465 7374 696e 67
User-Password Attribute (2), length: 18, Value:
0x0000: a7cb 807f a0dc fdca 8bd4 e19f cbf4 3e79
Calling-Station-Id Attribute (31), length: 19, Value: 98:f6:21:c0:cc:9d
0x0000: 3938 3a66 363a 3231 3a63 303a 6363 3a39
0x0010: 64
NAS-Identifier Attribute (32), length: 19, Value: c4:e9:0a:21:61:b0
0x0000: 6334 3a65 393a 3061 3a32 313a 3631 3a62
0x0010: 30
NAS-IP-Address Attribute (4), length: 6, Value: 192.168.1.32
0x0000: c0a8 0120
NAS-Port-Type Attribute (61), length: 6, Value: Wireless - IEEE 802.11
0x0000: 0000 0013
NAS-Port Attribute (5), length: 6, Value: 255
0x0000: 0000 00ff
FreeRadius 根本没有记录这个请求,也没有发送任何响应。
我可能最想知道的第一件事:为什么 FreeRadius 在记录另一个请求时不记录来自 DLink 接入点的请求?
知道我错过了什么,为什么没有从 FreeRadius 到接入点的响应 UDP 数据包?
一个“奖励”问题:在接入点的 UI 中,身份验证机制称为“SPAP”,但“用户密码属性”看起来像普通的“PAP”身份验证。PAP和SPAP有什么区别?SPAP 代表什么?我找不到任何协议文档。
我将 FreeRADIUS 配置为使用 EAP-TLS 进行基于证书的身份验证(自签名证书)。身份验证工作正常,除了我想添加基于组的授权。
更具体地说,我需要Class
在回复中使用要发送回 NAS 的属性。该属性将被 NAS 读取并解释为组成员信息(例如Class
= myclass
)。
一些背景资料: 我将 FreeRADIUS 与 strongSwan 一起使用;这就是解释组成员信息的地方。
我正在寻找一种让 FreeRADIUS 了解这些组的简单方法。我尝试Class
在 rlm_files 模块 ( freeradius/3.0/mods_config/files/authorize
) 的配置文件中设置属性,如下所示:
username
Reply-Message := "Hello, %{User-Name}",
Class := "myclass"
我将第一行留空,因为不需要“检查项目”。
EAP-TLS 身份验证成功,但该Class
属性未附加到回复中。
我什至不确定 FreeRADIUS 是否在 EAP-TLS 身份验证完成后处理user
(或)文件。authorize
我对此表示怀疑。
有没有一种简单的方法来Class
根据用户名指定属性(假设有多个用户和几个组)?
我目前有一个使用 EAP-TTLS 的 FreeRADIUS 设置。
我想设置它,使来自本地主机的请求使用 PAP,但其他请求仍然使用 EAP-TTLS。
如何选择基于每个客户端使用的身份验证方法?
我们已经部署了 Radius 服务器(Freeradius 3.x)并将其连接到我们的 LDAP 数据库(ForgeRock OpenDJ)。
我们已经成功地为 EAP-TTLS配置了有效的证书并将其设置为默认连接方法。(几乎所有其他设置都保留为默认值)
但是,当 EAP-TTLS 建立时,密码是使用 PAP 传输的。我不是网络专家,但我读到 PAP 不安全,不应该使用?(我觉得网上有很多令人困惑的材料)
如果我尝试使用任何其他方法(例如 MS-CHAPv2)登录,则会失败并出现各种错误:
FAILED: No NT/LM-Password. Cannot perform authentication'
或者
freeradius_1 | (22) eap_md5: ERROR: Cleartext-Password is required for EAP-MD5 authentication
它显然需要额外的配置。
问题是,当我们在 2019 年拥有 EAP-TTLS 时,我们 PAP 可以吗?还是我们应该考虑将不同的类型设置为默认值?
我们的 LDAP 对密码进行了哈希处理(显然),所以我们还有其他选择吗?根据我找到的这份文件,这似乎是我们唯一的选择。
我的任务是设置 freeRADIUS 以提示用户输入他们的第二个身份验证因素(例如 Google Authenticator OTP),但无需先检查用户的密码。
我完全是盲目的,之前没有任何 RADIUS 经验。我们有一个提示用户登录的 web 应用程序,因此密码验证已经完成。然后,我们需要提示用户提供第二个身份验证因素以执行某些操作。我们不想反复要求用户输入他们的密码(显然,在本地缓存它是不行的)所以我们想做的是以某种方式配置 freeRADIUS 以便它:
- 忽略我们在初始请求中为密码传递的值
- 返回一个质询响应,它将提示用户输入他们的第二个身份验证因素(例如 OTP)
这甚至可行吗?就像我说的,我之前没有任何 RADIUS 经验,所以如果这是一个愚蠢的问题,我深表歉意。
我正在开发免费的半径管理系统,我用 PHP 语言开发它。我的系统将在云上可用,假设有 company1 和 company2 将使用我们的系统。company1 将拥有 database1 将包含 company1 的客户 company2 将拥有 database2 将包含 company2 的客户。现在在免费半径中使用文件proxy.conf有什么好处或使用我已经阅读了它,但我不明白。但我认为这个文件与我的问题有关,不是吗?谁能向我解释这个文件以及如何使用它?