对于支持 RFC 1413 中所述的 identd 服务的客户端主机,您可以通过在过滤器的 clientSpec 条目中包含客户端的用户名来进一步标识请求服务的特定客户端。在这种情况下,此条目的格式为:
user@hostSpec
其中 user 是由客户端的 identd 服务返回的用户名(或通配符名称)。
在过滤器中指定客户机用户名会很有用,但请记住以下警告:
identd 服务未经验证;如果客户端系统已损坏,则不能信任此服务返回的客户端用户名。总的来说,请不要使用具体的用户名;仅使用通配符名称 ALL、KNOWN 或 UNKNOWN。
大多数现代客户端计算机都不支持 identd,因此它在现代部署中提供的附加值不大。我们正考虑在将来的版本中删除 identd 支持,所以如果此功能对您站点有价值,请通知 Sun Java System。
用户名查找需要花费时间;对所有用户执行查找可能会减慢不支持 identd 的客户端的访问。有选择的用户名查找可以缓解此问题。例如,如下规则:
serviceList:@xyzcorp.com ALL@ALL
将匹配 xyzcorp.com 域中的用户而不执行用户名查找,但它将对所有其他系统执行用户名查找。
用户名查找功能在某些情况下可以有助于您防止来自客户端主机上未经验证用户的攻击。这可以在某些 TCP/IP 中实现,例如,对于使用 rsh(远程 Shell 服务)来冒充信任的客户端主机的盗窃信息者来说,如果客户端主机支持 ident 服务,则可以使用用户名查找来检测这样的攻击。