« がんばれGAORA!! | メイン | やっぱし、あのアーロンチェアがほしい。。 »

Catalyst3550で802.1xをやってみる

無線LANの認証で使われている802.1xを、通常のLANでも使う事が出来ます。どんな感じになるかと言いますと。。。

パソコンをネットワークに接続すると、下のような感じでユーザ名・パスワードを入れろと言ってくる。
20040520/8021x_1

20040520/8021x_2

なので、認証サーバ(RADIUS)に登録されているユーザ名・パスワードを入れると、認証で許可されてネットワークを無事使う事が出来ます。
しかし、間違ったユーザ名やパスワードを入れると、ネットワークにパソコンがつながっているのに通信が一切出来なくなります。

実際に、802.1xをCiscoのCatalyst3550とWindowsXP、認証サーバにルーセントのNavisRadiusで試した時に作ったメモを「続き」にのしましたので、興味をお持ちの方は是非見せてください。
もし、間違えや、気になった事がありましたら、ばんばんコメントをお願いします。

■IEEE802.1xの概要
・IEEE802.1xを用いると、クライアントはサーバで認証され許可されるまでネットワークを使ってデータ送信が出来ない。

・認証には、無線でも使われてるEAPが使われている。

・Catalystスイッチでは認証されるまで、EAPOL(Extensible Authentication Protocol over LAN)、CDP、STPトラフィックだけが許可される。認証が成功すればそれ以外の通常のIPトラフィックも通過する事が出来る。

■EAPの概要(Extensible Authentication Protocol/PPP拡張認証プロトコル)
・認証プロトコル(PPP)を拡張・強化した認証手順で、IEEE802.1xでの認証で採用されている。EAPには多くの種類がある。代表的な方式は下記の通り。

・EAP-MD5
ユーザID+パスワードによる1方向認証。認証するときに、ユーザ端末でユーザ名・パスワードを入力してもらうだけの非常にシンプルなもの。

・LEAP(EAP-Cisco Wireless/リープ)
ユーザID+パスワードによる、クライアント(ユーザ端末)<-->サーバの方向認証。Cisco社のプライベート規格で、現在はPEAPへ以降されつつある。

・PEAP(Protected EAP/ピープ)
クライアント(ユーザ端末)はユーザID+パスワード、サーバはデジタル証明書を用いた双方向認証。サプリカント(ユーザ端末ソフトウェア)は、WindowsXP/2000にもバンドルされている。マイクロソフトとシスコなどが開発したもの。

・EAP-TLS(Transport Layer Security)
クライアント(ユーザ端末)とサーバの双方に登録されたデジタル証明書による双方向認証。

・EAP-TTLS
PEAPとほぼ同様だが、サプリカント(ユーザ端末ソフトウェア)はOSにバンドルされていないため、Funk社等のものを購入する必要がある。開発元は、ファンク・ソフトウェアとサーティコム。

■Catalyst3550でのデフォルトの設定
・AAAのはディセーブル
・RADIUSサーバの認証用ポート:1812
・定期的再認証:ディセーブル
・クライアントとの認証交換が失敗したあと、スイッチが待機ステートにとどまる時間:60秒
・再認証間隔:3600秒
・スイッチが、クライアントからのEAP要求/アイディンティティフレームに対する対応を待ち、要求を再送信するまでの時間:30秒
・スイッチが、認証プロセスを再開するまでにEAP要求/アイディンティティフレームを送信する回数:2回
・ホストモード:1つのホストモード
・クライアントのタイムアウト:30秒
・認証サーバのタイムアウト:30秒

・資料:
Catalyst3550のマニュアルの802.1xポートベースの認証の設定

■Calalyst3550での設定
1,AAAをイネーブルにする
(config)# aaa new-model

2,RADIUSサーバの位置や鍵を設定する。
(config)# radius-server host 10.1.1.100 key cisco

3,認証用のリストを作成する。デフォルトで作れば、全インタフェースに自動で適応される。
(config)# aaa authentication dot1x default group radius

4,スイッチ上で802.1x認証をイネーブルにする。
(config)# dot1x system-auth-control

5,インタフェース上で802.1x認証をイネーブルにする。
(config-if)# dot1x port-control auto

auto以外に2種類のパラメータがある。
・force-unauthorized
ポートを無許可ステートのままにする。クライアントが認証を試みても無視する。要するに使用不可なポートとなる。
・force-authorized
802.1x認証をディセーブルにして、認証なしてポートを許可ステートにする。クライアントは認証なしで普通に通信可能。これがデフォルトの設定。

■注意事項
・dot1xはアクセスポートのみ設定可能
Catalyst3550のポートはデフォルトで[dynamic desirable]となっているので、デフォルトで設定するとエラーではじかれる。
なので、アクセスポート固定にしてから設定する。

はじかれた時の例:
(config-if)# dot1x port-control auto
Command rejected: Dynamic mode enabled on one or more ports.
Dot1x is supported only on Ethernet interfaces configured in Access, Routed or Private-vlan Host Mode.

(config-if)# switchport mode access
と設定してからなら問題なし。

■確認コマンド
・認証される前
# sh dot1x int fa0/15
PortStatus = UNAUTHORIZED
MaxReq = 2
HostMode = Single
Port Control = Auto
QuietPeriod = 60 Seconds
Re-authentication = Disabled
ReAuthPeriod = 3600 Seconds
ServerTimeout = 30 Seconds
SuppTimeout = 30 Seconds
TxPeriod = 30 Seconds
Guest-Vlan = 0

・認証が許可されたとき
# sh dot1x all

Dot1x Info for interface FastEthernet0/15
----------------------------------------------------
Supplicant MAC 00b0.d0ac.57a7
AuthSM State = AUTHENTICATED
BendSM State = IDLE
PortStatus = AUTHORIZED
MaxReq = 2
HostMode = Single
Port Control = Auto
QuietPeriod = 60 Seconds
Re-authentication = Disabled
ReAuthPeriod = 3600 Seconds
ServerTimeout = 30 Seconds
SuppTimeout = 30 Seconds
TxPeriod = 30 Seconds
Guest-Vlan = 0

■その他
・EAPはL2のプロトコル(type=0x888e)
PC <--> スイッチ
ここは、L2にEAPがカプセル化される。

スイッチ <--> RADIUS
ここは、スイッチがIPにカプセル化して送る。

・認証が出来ているとき、ケーブルを抜いて再度接続すると、再度認証しないとポートを使用できない。

・クライアントはwindowsXPを使用すると、ローカルエリア接続のプロパティにデフォルトで802.1xの設定項目があるのでラクチン。

・上記の検証は、クライアントにWindowsXP、RADIUSサーバにルーセントのNavisRadius、認証方式にEAP-MD5を使用。

トラックバック

このエントリーのトラックバックURL:
http://gogokeiji.com/mt/mt-tb.cgi/5

コメント (10)

ashiさん

お礼のコメント、ありがとうございます。
無事に成功されたのですね、よかったです。

最近、Ciscoの記事が少なくあまり役に立たないとは思いますが、何かありましたら、また質問をバンバンください。

楽しみに待っております。

ashi:

けいじさん。紹介の方法を試したところ無事ログインできました。大変助かりました!どうもありがとうございます!今後も参考にさせていただきます。

ashiさん、初めまして。

早速ですが、telnetしようとして設定してもいないのにusernameから聞かれる現象ですが、その現象は802.1xを設定したからではなく
(config)# aaa new-model
を入力したからです。

802.1xを有効にしたままで上記の現象の回避方法は、下記をごらんください。

今まで通り、パスワードのみ入力したい場合ですが
(config)# line vty 0 4
(config-line)# login
(config-line)# password cisco
で設定した、ciscoのみをパスワードとして使いたい場合は
(config)# aaa authentication login default line
と入力してください。

そうすれば、ciscoだけでログインできるようになります。

いかがでしょうかashiさん、解決できたでしょうか?
ちょっと怪しい記憶なので、間違っているかもしれません。
うまく行かなかったら、またコメントをください。

ashi:

はじめまして。一年以上前の記事でもうしわけないんですが、質問よろしいでしょうか?
cat3550とfreeRadiusで同じ様なことをしているのですが、スイッチで802.1xを有効にしたあとで、telnetしようとするとusernameから聞かれます。
以前は、passwordオンリーだったのですが。
ちなみに、802.1xを有効にしたポート以外のポート(全ポート)でこんなかんじなので、スイッチにログインできません。
radius側でユーザ名、パスワードを登録しなければならないんでしょうか?
もし、わかりましたらよろしくおねがいします。

そりゃ、そうやわね。。。ユーザごとにVLANを変えないとお話にならないもんね。。。。

かっちゃん:

試したってゆーか、提案のデモで必要やったぽ(´Д`)ハァハァ

まじっすか~
ってことは、試したんすか~?
俺も、是非試してみたいもんですわ~

かっちゃん:

RADIUSサーバで、USER毎に特定のVLANをアサインする場合は、下記コマンドも必要みたいですよ。
aaa authorization network default radius

これ入れてないと、認証が成功しても、ポートにアサインされているVLAN(デフォルトはVLAN1)に所属しますが、これを入れると、RADIUSサーバに登録されたVLANに所属できました。

う~ん、セキュリティーですか。。。
そうですね~、他の端末で認証が通ってても、いったん抜いてしまえば必ず再度認証しないと通信出来ないんで、まずまずのセキュリティーかなと思います。
でも、アカウントとパスワードが漏れるとどないしようもないのは、当然っすね。。。
それにしても、セキュリティーは俺よりたけちゃんのほうが強そうな気が。。。

Windows2000,98の場合なんすが、Win2000は
http://support.microsoft.com/default.aspx?scid=kb;ja;313664
でやり方が載ってますわ。
Win98は、専用のクライアントソフトが必要な感じっぽいです。。

たけちゃん:

はじめまして、たけちゃんです。
コメント初投稿です。

802.1xってすごいなぁ。
勉強になりました。
これでセキュリティは万全かな?
早速、会社のスイッチの全ポートに設定してみよう!
でも、Windows2000とか98が結構残ってる。
彼らはどうすればいいの?・・・

コメントを投稿

About

2004年05月20日 23:59に投稿されたエントリーのページです。

ひとつ前の投稿は「がんばれGAORA!!」です。

次の投稿は「やっぱし、あのアーロンチェアがほしい。。」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Creative Commons License
このブログは、次のライセンスで保護されています。 クリエイティブ・コモンズ・ライセンス.