我想要一个服务器,该服务器可以处理两个具有一个IP背后的不同秘密的客户端。 Freeradius不能阻止我。它为动态客户端使用静态ip-secret绑定。
无法在Freeradius 2和3中挂钩自己的模块。
我如何使用freeradius库解析原始udp数据包并更改Message-Authenticator?解析器功能在哪里?
我想像服务器一样进行代理传递。
客户端向secret1
(我的带secret1的代理身份验证数据包)发出请求,将数据复制到新数据包中,并通过localhost constant secret2
对其进行加密,然后将其发送到freeradius。 Freeradius回复将被重新编码并发送回客户端。
现在尝试链接到libradius-radius ...
答案 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函数。