web-dev-qa-db-ja.com

FreeRADIUS 3の2つのグループ(スタッフとゲスト)にユーザーを分ける

WPA認証(PEAP + MSCHAPv2)用のFreeRADIUS(3.0.15)サーバーがあり、閉鎖された修道院で一生勉強するように感じても、すべてが箱から出して動作します構成のすべてのビットをマスターします。

usersファイルにユーザーがいますが、単純なテキストエディターでユーザーを編集できる便利さを気に入っているので、(sqlやldapではなく)そのままにしておきたいと思います。

私が達成しようとしていること:

2つのSSID(staffguests)があり、ゲストユーザーがstaffで認証しようとすると拒否されるように、ユーザーを2つのグループに分けたいと思います。 SSID。

私がこれまでに持っているもの:

私のusersファイル:

DEFAULT
    MyGroup := 'guests',
    Fall-Through := Yes

# Guest users
guest1 Cleartext-Password := 'password1'
# End of guest users

DEFAULT
    MyGroup := 'staff',
    Fall-Through := Yes

# Staff users
staff1 Cleartext-Password := 'kdjsfhksf'
# End of staff users

私の望みは、ファイルを解析した後、reply:MyGroup属性には、リクエストに一致したユーザーに応じてstaffまたはguestがあります。

私のdictionaryファイルには次のものがあります。

ATTRIBUTE MyGroup 3000 string

そして、私のdefaultサイトには、authorizeモジュールの直後のfilesグループにこれがあります。 rewrite_called_station_id新しい属性を作成しますCalled-Station-SSID、これはMyGroupmodによって作成されたfiles attrに沿って使用し、ユーザーをフィルタリングしようとします。

# get SSID from Called-Station-Id
rewrite_called_station_id

# check guest connecting to staff SSID and reject if so
if (&MyGroup == 'guests' && &Called-Station-SSID == 'STAFF') {
        reject
}

私もこれを試しました:

if (&reply:MyGroup == 'guests' && &Called-Station-SSID == 'STAFF') {

しかし、いずれにせよ、次のエラーが発生します。

if (&reply:MyGroup == 'guests' && &Called-Station-SSID == 'STAFF') {
ERROR: Failed retrieving values required to evaluate condition

この時点では、何が起こっているのか、そしてそれを修正する方法がわかりません。

1
jamarju

グループをユーザーに割り当てたい場合は、&controlリストにアイテムを挿入するチェックアイテムを使用して行います。

guest1  Mygroup := 'guests', Cleartext-Password := 'password1'

staff1  Mygroup := 'staff', Cleartext-Password := 'kdjsfhksf'

その後

if ((&control:MyGroup == 'guests') && (&Called-Station-SSID == 'STAFF')) {
1