首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Freeradius允许来自特定站点的用户(WISPr-Location-ID)

Freeradius允许来自特定站点的用户(WISPr-Location-ID)
EN

Stack Overflow用户
提问于 2020-01-09 23:58:47
回答 1查看 125关注 0票数 0

我已经从以下站点的帮助中安装了Freeradius和Daloradius。https://computingforgeeks.com/how-to-install-freeradius-and-daloradius-on-ubuntu/

我需要些帮助。我有一个独特的情况。

我有多个安装了mikrotik路由器的站点。我已经在单个位置安装了RADIUS,并使其成为用户hotspot用户(在Mikrotik上)身份验证的单点。

我所实现的是:当用户想要登录时,他被分配到XYZ速度限制和XYZ空闲时间和XYZ同时用户。

我所做的:出于测试目的,我制作了

代码语言:javascript
复制
Reply Attributes:
Fall-Through: value 1 , Op =

Check Attribues:
Auth Type: Value Reject, Op :=
WISPr-Location-ID: Value Site1, Op !=

上面所做的是,它检查如果用户试图从一个WISPr-Location-ID现在为Site1的站点登录,它会拒绝该用户。如果WISPr-Location-ID为Site1,则允许用户登录。这就像我想要的那样工作良好。

我的目标是(我想要做的,但没有实现的)是:当用户实际在Site1 (允许他的地方)时,如果我应用速度限制、空闲超时和(检查属性)同时用户的回复属性,则它们不会被应用。

简而言之,我想:

如果用户在site1,则允许该用户并应用此速度限制、空闲超时和同时用户限制,否则拒绝和不允许在网络上。

在这方面,有没有人可以帮我?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-13 00:47:19

由于没人接电话,我换了一条路走。

在Radius数据库的用户表中,有一列"address“

我添加了我想要的站点名称作为地址,然后在

授权下的/etc/freeradius/3.0/sites enabled/default文件。

代码语言:javascript
复制
if ("%{sql: select address from userinfo where username = '%{User-Name}'}" != "%{WISPr-Location-ID}" && "%{sql: select address from userinfo where username = '%{User-Name}'}" != "all"  ) {
update reply {
Reply-Message = 'Error: You are not allowed to connect form this Site !'
}
update control {
Auth-Type := "Reject"
}
}

上面所做的是,它将查找路由器发送的WISPr-Location-ID,如果回复与写在用户地址中的内容匹配,它将允许用户连接到网络,如果用户在地址字段中写入了"all“,则无论来自路由器的回复如何,它都将允许用户连接到网络。

如果用户在地址字段中没有"all“,并且有一些其他条目与从路由器接收到的回复不匹配,它将向用户发送msg

“错误:不允许您从此站点连接!”

我希望这对其他人有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59667817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档