我可以使用libfreeradius制作自己的Radius服务器吗?

时间:2018-10-07 20:40:31

标签: c freeradius radius

我想要一个服务器,该服务器可以处理两个具有一个IP背后的不同秘密的客户端。 Freeradius不能阻止我。它为动态客户端使用静态ip-secret绑定。

无法在Freeradius 2和3中挂钩自己的模块。

我如何使用freeradius库解析原始udp数据包并更改Message-Authenticator?解析器功能在哪里?

我想像服务器一样进行代理传递。

客户端向secret1(我的带secret1的代理身份验证数据包)发出请求,将数据复制到新数据包中,并通过localhost constant secret2对其进行加密,然后将其发送到freeradius。 Freeradius回复将被重新编码并发送回客户端。

现在尝试链接到libradius-radius ...

1 个答案:

答案 0 :(得分:1)

FreeRADIUS 4将支持IP /端口元组与秘密的动态绑定,从而有效地解决了您的问题。如果您想自己构建某些东西,则可以使用libfreeradius,但老实说,这是供FreeRADIUS和圆角二进制文件附带的实用程序内部使用的,该API(更不用说ABI)非常易变,并且经常在较小的之间进行更改发布,因此您可能会发现需要花很多时间来维护自己想出的一切。

如果您愿意这样做,您可能会发现使用FreeRADIUS 4 HEAD更加容易,因为协议解析器被分为独立的独立库,可以很容易地在主服务器之外进行初始化。

您需要调用的主要功能是fr_radius_init初始化协议库,然后fr_radius_encode编码数据包和fr_radius_decode解码数据包。

尽管src/lib/util/socket.c中有一些提供基本的抽象,但是您需要拥有自己的IO函数。