验证用户
FreeRADIUS支持各种身份验证协议。它们的复杂程度各不相同,PAP最简单,EAP最复杂。
编辑用户文件
如果用户存储由用户文件组成,请记住在用户文件最新更改生效之前必须向运行的FreeRADIUS进程发送SIGHUP信号才能生效。
#> kill -1`cat / var / run / radiusd.pid`
如果你不知道SIGHUP信号是什么,它有很长的历史,在这个维基百科页面上有解释: http://en.wikipedia.org/wiki/SIGHUP FreeRADIUS以下列(现代)方式使用它: 守护进程程序有时会使用SIGHUP作为重新启动自身的信号,这是重新读取已更改的配置文件的最常见原因。 FreeRADIUS Wiki上的FAQ页面包含一个基本脚本,您可以使用该脚本自动更改用户文件。请注意,常见问题解答中的信息应作为指导原则,可能需要根据分发情况进行额外调整。另外,请注意不要简单地发送SIGHUP(或重新启动)而不先检查配置。但是,也鼓励您使用LDAP和SQL等动态用户存储。
使用raddebug
在生产环境中跟踪身份验证问题时,raddebug命令是您的朋友。 -u选项允许您仅查看指定用户的调试信息。
密码更改时
大多数企业都有密码策略,可以强制定期更改用户密码。当FreeRADIUS使用这些用户存储时,用户有可能通过使用继续尝试使用过期密码进行身份验证的软件来锁定其帐户。 如果存储的用户名和密码无法验证用户,则写得很好的请求者将提示用户提供密码。 iPad和iPhone包含了这样一个请求者的光辉榜样。不幸的是,Windows环境可能包含各种请求者,并且它们并不总是考虑到这种情况。 当您使用-u选项运行raddebug同时要求用户尝试进行身份验证时,您应该能够非常轻松地解决密码问题。 并不只是请求者行为不端。某些Wi-Fi接入点将“缓存”先前已成功验证的客户端的凭据。如果这些客户端断开连接并再次连接到接入点,则接入点只会将以前的凭据(它已成功连接)转发到RADIUS服务器。如果这些凭据在两个连接之间发生了变化,那么您会感到惊讶,因为AP不会向请求方询问最新凭据,而只是将之前的会话转发给RADIUS服务器。
密码长度
一个迟早会出现的问题是,具有很长密码的用户可以在一个RADIUS客户机上进行良好的身份验证,但不能在另一个RADIUS客户机上进行验证。此问题通常与截断密码的RADIUS客户端有关。这类似于我们用共享密钥解释的问题,其中某些NAS客户端对共享密钥的长度有限制。
EAP问题
如本节开头所述,EAP协议是最复杂的身份验证协议。有很多地方可能出现问题但是如果你坚持逻辑故障排除原则,即使最大的问题至少应该是可识别的。
CA证书
确保CA证书包含Microsoft所需的对象标识符(OID)。如果未包含它们,则可能会遇到Microsoft客户端的问题。 FreeRADIUS附带了一个自述文件,其中包含有关以正确方式生成和使用证书的详细信息。在SUSE和CentOS上,README位于/etc/raddb/certs目录下。在Ubuntu上,它位于/usr/share/doc/freeradius/examples/certs下。 如果使用Internet Explorer在Windows 7上下载并安装新的根CA,请确保使用“以管理员身份运行”选项启动Internet Explorer,以便在下载CA后将CA放入正确的存储中。在Windows7的某些安装中,这是使新CA与请求方的CA选择控件中的现有CA一起列出的唯一方法。当我们没有采用此路径时,证书已导入但未在请求方的CA选择控件中显示。
确定问题所在的位置
如果用户遇到连接问题,请尝试确定它是否与请求者相关或与帐户相关。情况可以描述如下:
- 如果它与请求者相关,则另一个用户在使用相同的请求者但使用他们自己的凭据进行连接时也会遇到问题。
- 如果与帐户相关,则同一用户在从不同设备上的不同请求者连接时也会遇到问题。 如果您使用raddebug来帮助进行故障排除,请记住确保外部标识中使用的用户名与内部隧道中指定的用户名相同,将其与-u选项一起使用,或者创建一个自定义条件,该条件将通过使用-c选项同时满足这两个条件。