web-dev-qa-db-ja.com

FreeRadiusサーバー:最大接続ユーザーのRadGroupReply属性?

FreeRadiusサーバーを持っていますが、特定のNASに接続するユーザーの数に制限を設定したいと思います。私の現在の設定では、特定のNASに接続するすべてのユーザーは、そのNASに接続されているRadiusユーザーグループに追加されます。次に、RadGroupReplyは、私がやりたいことを実行します。特定のNASのユーザー。現在、最大ダウンロード速度制限とセッションタイムアウトを設定できますが、特定のNASに接続できるユーザーの最大数を制限する場合、どの属性を使用するのか疑問に思っています。 NAS。

ありがとう。

2
Kix Panganiban

確かに、最初に、postgresqlやMySQLなどのSQLデータベースでRADIUSアカウンティングを設定する必要があります。

次に、古いセッションを検出するためのソリューションを実装する必要があります。これは、暫定更新を有効にし、cronジョブを使用して最後の更新が(NOW() - <interim time>)より前であったセッションを閉じるのと同じくらい簡単です。過去の時間を計算する方法はデータベースごとに大きく異なるため、使用するデータベースに適した構文を見つける必要があります。

最後に、NASのライブセッションカウントを取得し、構成された最大値と比較するunlangポリシーを作成する必要があります。FreeRADIUSv3.0.xでは、任意のペアを=に関連付けることができます。 NASクライアントセクションに追加します。

クライアントセクションの例:

client test {
    ipaddr = 127.0.0.1
    secret = 'testing123'
    max_users = 10
}

ポリシーの例:

authorize {
    if ("%{sql:SELECT COUNT(*) FROM radacct WHERE nasipaddress = '%{NAS-IP-Address}' AND acctstoptime != NULL}" > "%{client:max_users}") {
        update reply {
            Reply-Message := 'Sorry, too many users connected, please try again later'
        }
        reject
    }
}
1