gpt4 book ai didi

c - 我怎样才能在pam中获取客户端ip

转载 作者:太空狗 更新时间:2023-10-29 11:13:08 25 4
gpt4 key购买 nike

我正在编写一个自定义 pam 模块,其中仅从特定的 ip 地址控制身份验证

我无法获取建立连接的客户端的 IP 地址。有什么例子吗?

我在我的代码中使用了这个函数

....
err = pam_get_item(pamh, PAM_RHOST, (const void **) &pHost);
.....

但我得到的 phost 总是 null

最佳答案

首先:

where authentication is controlled only from particular ip addresses

以 IP 地址为基础不是一个好主意,因为它们很容易伪造。不要那样做。

其次:

作为 man pam_get_item will tell you

The requesting hostname (the hostname of the machine from which the PAM_RUSER entity is requesting service). That is PAM_RUSER@PAM_RHOST does identify the requesting user. In some applications, PAM_RHOST may be NULL. In such situations, it is unclear where the authentication request is originating from.

如今在许多应用程序中都会出现这种情况。

您可能只是混淆了 PAM 请求的来源(不应该永远被信任——这些人试图获得授权,所以在您信任之前先信任他们它们很明显使您自己的身份验证机制变得无用)和在后台工作的“身份验证器”。

如果您需要基于主机的验证,已经有一个成熟的解决方案,虽然设置起来有点复杂,但仍被广泛部署:Kerberos 正是这个目的,对主机进行身份验证,以便进一步的身份验证可以考虑主机的真实性。不要重新发明轮子,尤其是在安全方面。

关于c - 我怎样才能在pam中获取客户端ip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32988772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com