Unlang 写入文件 FreeRADIUS
Unlang write to file FreeRADIUS
我知道我可能面临着一个不可能完成的任务。我想要的是 radiusd 记下访问请求中收到的每个 mac,以便稍后拒绝访问那些 MAC。
我知道策略文件是用 unlang 编写的,坏消息是 radiusd 对任何 conf 文件没有任何写权限...
无论如何,有人能够在 FreeRADIUS 的策略处理中写入文件吗?
我想要实现的是这样的:
raddb/sites-available/default
authorize {
rewrite_calling_station_id
unauthorized_macs
if(ok) {
reject
}
else {
update control {
Auth-Type := Accept
}
GET MAC FROM CALLIN_STATION_ID ATTRIBUTE
WRITE THIS F***ING MAC TO unauthorized_macs FILE
}
}
感谢 Arran,我可以通过以下方式解决此问题:
authorize {
rewrite_calling_station_id
authMac
if(ok) {
reject
}
else {
linelog
update control {
Auth-Type := Accept
}
}
}
其中linelog配置如下:
raddb/mods-enabled/linelog
linelog {
filename = /path/to/hell/authMac
format = "%{Calling-Station-ID}"
}
update request {
Tmp-String-0 := `echo "%{Calling-Station-ID}" >> "/path/to/f___ing_unauthorized_macs_file"`
}
还有 linelog 模块,在 >= v3 中会更好。0.x 因为它实现了内部锁定(除了 flock 之外)以防止行交织。
有关示例,请参阅 /etc/raddb/mods-available/linelog
。
我知道我可能面临着一个不可能完成的任务。我想要的是 radiusd 记下访问请求中收到的每个 mac,以便稍后拒绝访问那些 MAC。
我知道策略文件是用 unlang 编写的,坏消息是 radiusd 对任何 conf 文件没有任何写权限...
无论如何,有人能够在 FreeRADIUS 的策略处理中写入文件吗?
我想要实现的是这样的:
raddb/sites-available/default
authorize {
rewrite_calling_station_id
unauthorized_macs
if(ok) {
reject
}
else {
update control {
Auth-Type := Accept
}
GET MAC FROM CALLIN_STATION_ID ATTRIBUTE
WRITE THIS F***ING MAC TO unauthorized_macs FILE
}
}
感谢 Arran,我可以通过以下方式解决此问题:
authorize {
rewrite_calling_station_id
authMac
if(ok) {
reject
}
else {
linelog
update control {
Auth-Type := Accept
}
}
}
其中linelog配置如下: raddb/mods-enabled/linelog
linelog {
filename = /path/to/hell/authMac
format = "%{Calling-Station-ID}"
}
update request {
Tmp-String-0 := `echo "%{Calling-Station-ID}" >> "/path/to/f___ing_unauthorized_macs_file"`
}
还有 linelog 模块,在 >= v3 中会更好。0.x 因为它实现了内部锁定(除了 flock 之外)以防止行交织。
有关示例,请参阅 /etc/raddb/mods-available/linelog
。