如何在FreeRADIUS服务器上验证不同用户的不同SSID?

时间:2015-01-09 17:38:15

标签: freeradius ssid

我有两个SSID(一个用于用户,一个用于员工),以及一个FreeRADIUS服务器,用于授权帐户访问无线网络。但是服务器正在验证所有用户帐户以访问这两个SSID。我希望用户帐户无法访问员工SSID,反之亦然。我该如何设置?

1 个答案:

答案 0 :(得分:1)

您需要使用unlang配置才能允许所需的连接。有几种不同的方法。您首先需要弄清楚它是用户还是员工连接。

这可能是通过LDAP查找,或者您的用户可以使用' username@user.example.com '连接,员工可以通过' username@employee.example.com进行连接”。如果这是示例,请使用领域模块(suffix文件中的sites-enabled/default)将User-Name属性拆分为Stripped-Username和Realm。

您还需要SSID。许多NAS都将此作为Called-Station-ID属性的一部分提供,因此您可以使用提供的rewrite_called_station_id策略来获取此属性(FreeRADIUS 3)。

然后,您可以在sites-enabled/default 授权{} 部分执行某些操作,例如:

# get SSID from Called-Station-Id
rewrite_called_station_id

# check user connecting to employee SSID and reject if so
if (Realm == 'user.example.com' && Called-Station-SSID == "employee") {
    reject
}

# check employee connecting to user SSID and reject if so
if (Realm == 'employee.example.com' && Called-Station-SSID == "user") {
    reject
}

# otherwise we will continue processing...

希望您能看到如何构建控制访问的策略。有关详细信息,请参阅unlang man pageFreeRADIUS wiki以及服务器default configuration中有很多示例。