我已经FreeRADIUS
安装在我的服务器上,并且还有两个 LAN(或可能更多)由该服务器管理。假设 LAN A:192.168.1.0
和 LAN B: 192.168.2.0
。我正在与数据库FreeRADIUS
结合使用。postgres
在我的radcheck
表中,我插入了以下行:
userbane='myuser', attribute='Password', op=':=', value='mypass'
.
现在我想让从我的 FreeRADIUS 请求服务的客户端只有在属于 LAN B 的一部分时才能使用此用户名和密码对自己进行身份验证。
问题:任何人都可以建议我如何完成这项工作吗?
我试图在radcheck
一行中添加更多:username='myuser', attribute='NAS-IP-Address', op=':=', value='192.168.2.1'
,但没有成功。
任何帮助,将不胜感激。
我以前没有使用过数据库后端,但是使用用户文件规则看起来像这样:
基于此,我认为您需要表中的两个条目
radcheck
:使用 SQL 数据库,我通过以下方式解决了这个问题:
1)添加特殊行(site_id)
2) 修改/etc/freeradius/sql/mysql/dialup.conf 如下
在我的例子中,我使用了 NAS-Id,但是将 %{NAS-Identifier} 替换为 %{NAS-IP-Address} 并且可以选择将 site_id 替换为 site_ip 将使用 IP 地址来解决问题