- - PR -
FreeRadius属性削除・変更・追加についての質問
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-12-29 09:40
はじめまして、Toyと申します。皆様今後ともよろしくお願いいたします。
さて、組織上の都合があり有線LAN無線LANを802.1x認証+認証VLAN(ダイナミックVLAN)で構築しようとしています。組織内での構築は大体目処はついたのですが、外部連携組織との認証で躓いています。 以下がやりたいことです。 1.認証は802.1xでEAP-TLS、PEAP(MSCHAPv2) 2.組織内はTopレベルに設置したradiusが部署毎のRadius(tunnel情報含有)を参照する 3.同じように外部連携組織についてもTopレベルに設置したradiusがインターネットを通してProxy動作で聞きに行く 4.認証成功後はTunnel-Private-Group-IDで指定されたVLANに移行する(外部連携組織のユーザのVLANはVPNなど限定されたプロトコルのみを利用可とし、内部組織VLANとは隔離する。) ここで問題なのがtunnel情報が外部連携組織がそれらを持たない場合やこちらの目論見と違ったものを持つ場合です(外部とのProxy動作は検証済み。)今回の質問事項ですが、proxy先からの返された情報の内、Tunnel*の属性があれば削除し、新たにこちらが目論むVLAN情報を付け加える方法のあるや無しやと、そのHintです。 post_authにperlモジュールを突っ込んでこねくり回すということを考えておりますが、、、属性の検出、削除、追加の書式がわかりません。 実験で内部AD連携認証(Tunnel情報なし)に、testで付いてきたperlモジュールをpost_authブロックにいれてやると +- entering group post-auth {...} GOT CLONE -1208030512 0x82387d0 rlm_perl: Added pair User-Name = test@xx.xx.xx.jp rlm_perl: Added pair User-Password = xxxxxx rlm_perl: Added pair Realm = ~(.+\\.|)xx\\.xx\\.xx\\.jp$ rlm_perl: Added pair Stripped-User-Name = test rlm_perl: Added pair NAS-Port = 1812 rlm_perl: Added pair NAS-IP-Address = 192.168.yy.yyy rlm_perl: Added pair Auth-Type = ntlm_auth ++[perl] returns ok perlが属性を認識しているように見えるのですが。 さてどうしたものやら、manでもこのあたりの情報があまりなく 外部連携組織が1箇所で小さい場合は、こちらで管理ということも可能でしょうが、それがRadiusを階層管理し相手のユーザも不明な場合はこちらで何らかのギミックを用意しなければなりません。 イメージとしては http://www.ulan.jp/sigcms/index.php?plugin=attach&pcmd=open&file=IPSJ_CMS8-ITRC_MEET23-Goto.pdf&refer=%C2%E88%B2%F3%B8%A6%B5%E6%B2%F1 みたいな感じです。 組織内TopレベルRadiusはFreeRadius2.1.3、認証switchはアライドCentreCom9424T-SP-E他、アクセスポイントは同じくアライドのTenQ2403で構成しています。 では、皆様よろしくご教授お願いいたします。 ヘッポコ管理者 Toy |
|
投稿日時: 2008-12-29 10:40
すみません。自己解決しました。
manばかり探していたのですが、灯台下暗しでした。 下のサイトのAdding a Radius Response Itemあたりが参考になりそうです。 お騒がせいたしました。 http://wiki.freeradius.org/Modules Toy@へっぽこ |
|
投稿日時: 2008-12-30 08:17
一応。ご報告というか備忘録と、なにか間違いがあれば突込みをお願いします。
(1) raddb/modules/perlのなかでコールする関数名をコメントアウト。 私は実験的に func_post_auth = post_auth とした。 (2) raddb/example.plのなかのpost_auth関数を以下のように変更 # Function to handle post_auth sub post_auth { # For debugging purposes only # &log_request_attributes; $RAD_REPLY{'Tunnel-Type'} = 13; $RAD_REPLY{'Tunnel-Medium-Type'} = 6; $RAD_REPLY{'Tunnel-Private-Group-ID'} = 19; return RLM_MODULE_UPDATE; } (3) raddb/sites-enabled/defaultのpost_authブロックに perl と一言追加。 でradtestするとフルデバッグ画面上では +- entering group post-auth {...} GOT CLONE -1208288560 0xa178d50 rlm_perl: Added pair User-Name = test@xx.xx.xx.jp rlm_perl: Added pair User-Password = xxxxxxx rlm_perl: Added pair Realm = ~(.+\\.|)xx\\.xx\\.x\\.jp$ rlm_perl: Added pair Stripped-User-Name = test rlm_perl: Added pair NAS-Port = 1812 rlm_perl: Added pair NAS-IP-Address = 192.168.15.5 rlm_perl: Added pair Tunnel-Private-Group-ID = 19 rlm_perl: Added pair Tunnel-Medium-Type = 6 rlm_perl: Added pair Tunnel-Type = 13 rlm_perl: Added pair Auth-Type = ntlm_auth ++[perl] returns updated Sending Access-Accept of id 200 to 192.168.15.5 port 42500 Tunnel-Private-Group-Id:0 = "19" Tunnel-Medium-Type:0 = IEEE-802 Tunnel-Type:0 = VLAN となり、radtest側では radtest test@xx.xx.xx.jp passxxx 192.168.15.10 1812 secretxxx Sending Access-Request of id 200 to 192.168.15.10 port 1812 User-Name = "test@xx.xx.xx.jp" User-Password = "passxxx" NAS-IP-Address = 192.168.15.5 NAS-Port = 1812 rad_recv: Access-Accept packet from host 192.168.15.10 port 1812, id=200, length=36 Tunnel-Private-Group-Id:0 = "19" Tunnel-Medium-Type:0 = IEEE-802 Tunnel-Type:0 = VLAN プロキシの場合はpost_proxyでこれを行えばいいのかな? ということで簡単に属性追加ができました。 皆様、お騒がせいたしました。質問を投げて、じっくり自分の投稿をみると客観的にその問題を見ることができました。なんてアホな質問をしてしまったかと では皆さん、いいお年をお迎えください。 |
1