You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Synology部署的RADIUS服务器添加MAC地址绑定校验规则咨询

需求可行性结论

你的需求完全可以实现,你编写的SQL校验逻辑本身是合理的,仅存在一处变量写法的小问题需要调整。

操作步骤

1. 修正SQL规则写法

你现有规则里的Calling-Station-Id变量缺少大括号包裹,FreeRADIUS无法正确解析,修正后如下:

mac_check = "SELECT * from mac_addr_table WHERE Username = '%{SQL-User-Name}' AND MacAddr = '%{Calling-Station-Id}' ORDER BY ID"

注意:需要提前确认交换机上报的Calling-Station-Id(即终端MAC地址)的格式(比如是AA:BB:CC:DD:EE:FF、AA-BB-CC-DD-EE-FF还是纯十六进制字符串),和你mac_addr_table中存储的MAC格式保持一致。如果格式不匹配,可以在SQL中用REPLACE函数自动转换,例如:

mac_check = "SELECT * from mac_addr_table WHERE Username = '%{SQL-User-Name}' AND MacAddr = REPLACE('%{Calling-Station-Id}', '-', ':') ORDER BY ID"

2. 找到群晖RADIUS服务的配置目录

群晖官方的RADIUS Server套件底层基于FreeRADIUS开发,配置文件默认存储路径为:/var/packages/RadiusServer/etc/raddb/,需要通过SSH登录群晖后台操作。

3. 添加MAC校验规则到授权流程

  • 进入配置目录下的mods-enabled/文件夹,编辑sql配置文件
  • 在文件中找到authorize相关的配置块,把你修正后的mac_check查询规则添加进去
  • 接着进入/var/packages/RadiusServer/etc/raddb/sites-enabled/文件夹,编辑default站点配置文件
  • 在authorize段落中,确保sql模块的调用顺序在用户名密码校验逻辑之后,同时添加规则:如果mac_check查询无结果,直接返回接入拒绝。

4. 验证配置并重启服务

  • 先执行命令测试配置语法是否正确:
    radiusd -XC
  • 若返回Configuration appears to be OK的提示,就可以重启RADIUS服务生效:
    synoservice --restart pkgctl-RadiusServer

注意事项

  • 群晖RADIUS Server套件升级时会覆盖自定义配置,建议修改完成后将整个配置目录备份到个人存储空间,升级后重新恢复即可
  • 如果需要调试,可以执行radiusd -X开启实时debug日志,接入测试设备即可查看变量解析、SQL查询的完整执行过程,方便定位问题

内容的提问来源于stack exchange,提问作者rbe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 20:06:04