freeRADIUS でユーザーごとに Calling-Station-Id を使用するにはどうすればよいでしょうか?

freeRADIUS でユーザーごとに Calling-Station-Id を使用するにはどうすればよいでしょうか?

適切な情報をファイルに直接含めることで、RADIUS で各ユーザーを Mac-ID の小さなセットに制限しようとしていますusers。各ユーザーが 1 台の Mac に制限されていても問題ありません。サーバーは、Ubuntu 13.10 リポジトリの FreeRADIUS バージョン 2.1.12 を実行しています。使用される認証は PEAP と MSCHAPv2 です。

物理クライアント (Nexus 5) がアクセス ポイント (Netgear WG-102) 経由で接続しようとすると、FreeRADIUS はアクセス要求内の Mac-id を識別するようですが、チェックでは使用しません。現在のテスト セットアップでネットワーク上にあるデバイスは、RADIUS サーバー、アクセス ポイント、およびテスト クライアントだけです。ファイル内のエントリはusers次のように設定されています。

testuser   NT-Password := "<hash>", Calling-Station-Id == "a1b2c3d4e5f6"

ファイルには、Mac ID を上記の形式に正規化する関数policy.confがあり、 の直後にrewrite.calling_station_id呼び出されます。 を実行すると、適切にフォーマットされた Mac ID がログに表示されます。 ただし、要求は拒否されます。 チェックが に置き換えられても、属性が存在する場合は必ずパスするはずの ですが、要求は拒否されます。 ただし、 が に置き換えられると、属性が存在する場合にのみパスするはずの になります。available-sites/defaultpreprocessfreeradius -XCalling-Station-Id =* "a1b2c3d4e5f6"Calling-Station-Id !* "a1b2c3d4e5f6"ないリクエストに存在する場合、リクエストは受け入れられます。

対照的に、 を使用するとradclient、期待される動作が観察されます。 設定ファイルと関連ログは以下にリンクされています。/etc/freeradiusフォルダー全体がリンクされており、次の 4 つのケースのログも含まれています。 2 番だけが予期しない動作であることに注意してください。

  1. nexus-without-mac-success:usersファイルには MAC チェックがなく、認証は成功しました
  2. nexus-with-mac-fail:usersファイルのMACアドレスは正しいが、認証に失敗しました
  3. radclient-with-mac-expected-behaviour-fail-with-wrong: radclient が間違った MAC アドレスで実行され、拒否されました:echo "User-Name=testuser,User-Password=test,Calling-Station-Id=8c:3a:e3:19:70:0e" | radclient localhost auth testing123
  4. radclient-with-mac-expected-behaviour-success-with-correct: radclient は正しい MAC アドレスで実行され、受け入れられます:echo "User-Name=testuser,User-Password=test,Calling-Station-Id=8c:3a:e3:19:70:0f" | radclient localhost auth testing123

この使い方はできないのでしょうかCalling-Station-Id?逆にhttp://wiki.freeradius.org/guide/Mac-AuthMac ID をユーザーごとに制限したいので、これを行う別の方法があればそれも歓迎します。

http://portmasters.com/tech/docs/radius/userinfo.html#1004825これは 1999 年に書かれたものですが、これが正しい方法であると言っているようです。

http://www.cmi.ac.in/~ronno/freeradius-test以下が含まれます:

  • freeradius- の内容/etc/freeradius
  • logs- 上記の4つのログ
  • wg102.cfg- アクセスポイントの構成
  • snapshot.tar.gz- 上記すべてを含むtarball

答え1

外部リクエストの属性を内部サーバーに渡していません。

設定しcopy_tunnel_request = yesますeap{peap{}}(eap.conf または mods-available/eap)。

https://github.com/FreeRADIUS/freeradius-server/blob/master/raddb/mods-available/eap#L594

内部サーバーでのファイル呼び出しは、外部要求の Calling-Station-ID 属性にアクセスできず、どのエントリとも一致しないため、NT-Password 制御属性は設定されません。

関連情報