IEEE802.1X認証の基本設定
・スイッチにつながったパソコンに対してIEEE802.1X認証をする
・認証に合格したパソコンがスイッチを越えて通信できるようになることを確認する
ネットワーク構成(画像を別ウインドウで表示)
SwitchAのコンフィグ
!
version 12.2
no service pad
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname SwitchA
!
aaa new-model ←この機器で認証機能(AAA)を有効にする
aaa authentication dot1x default group radius ←IEEE802.1Xの認証にRADIUSを使う

!
dot1x system-auth-control ←この機器でIEEE802.1X認証を有効にする
no file verify auto
spanning-tree mode pvst
spanning-tree extend system-id
!
vlan internal allocation policy ascending
!
interface FastEthernet0/1
switchport mode access ←アクセスポートにしておく(ダイナミックポートだとIEEE802.1X認証はできない)
dot1x port-control auto ←このポートでIEEE802.1X認証を有効にする
spanning-tree portfast
!
!
interface Vlan1
ip address 192.168.100.50 255.255.255.0 ←自身にIPアドレスを振っておく
!        ↓RADIUSサーバーと通信するための設定(IPアドレス/ポート番号/パスワード)
radius-server host 192.168.100.100 auth-port 1812 acct-port 1646 key cisco
radius-server source-ports 1645-1646 ←自動的に入る
!
line con 0
line vty 5 15
!
!
end
確認
最近企業ネットワークなどで注目されているのが,「IEEE802.1X認証」です。
スイッチをRADIUSサーバーと連携させて,許可したユーザーだけをLANにつなげる技術です。

●IEEE802.1X認証とは?
IEEE802.1Xは,スイッチが持つセキュリティ機能の一つです。
IEEE802.1Xの構成要素は,パソコン(サプリカント),スイッチ(オーセンティケータ),RADIUSサーバー(認証サーバー)の三つです。
スイッチの視点に立つと,つながってきたパソコンに対して認証を要求し,ユーザーとRADIUSサーバーの間に位置して,認証データ(ID/パスワードや証明書など)を仲介する役割を果たします。
認証データのやりとりは,EAP(Extensible Authentication Protocol)というプロトコルが使われます。
そのEAPの上で,さまざまな認証方式(MD5,PEAP,TLSなど)が動作するようになっています。

●構成要素の確認と設定
IEEE802.1Xのシステムを実現するには,パソコンとRADIUSサーバーの設定が必要です。
まずはその準備をしましょう。

■パソコン(サプリカント)の設定
WindowsXPやWindowsVistaパソコンは,標準でIEEE802.1X対応ソフト(サプリカント)が入っています。
LANアダプタのプロパティ画面の「認証」タブをクリックすると,IEEE802.1Xの設定画面が出てきます。
まず,「このネットワークでIEEE802.1X認証を有効にする」にチェックを付けます。
その下の「EAPの種類」では,認証方式を選びます。
WindowsXPでは,

・MD5-Challenge(MD5方式:IDとパスワードを使う)
・スマート カードまたはその他の証明書(TLS方式:クライアントとサーバーの両方で証明書を使う)
・保護されたEAP(PEAP)(PEAP方式:クライアントはIDとパスワードを使い,サーバーは証明書を使う)の

三つの中から選べるようになっています。
ここでは,もっとも簡単なMD5方式を使ってみます。

クライアントの設定は以上です。

■RADIUSサーバーの設定
ユーザー・データベースとなるRADIUSサーバーも用意します。
今回は,Linuxの「FreeRADIUS」を使って例を見てみます。
Linuxのディストリビューションは,Fedora7を使いました。
Fedora7では,標準ではRADIUSサーバーが入っていません。
そこで,左上のメニューにある「アプリケーション」にある「ソフトウェアの追加/削除」を選んで,最新のFreeRADIUSをダウンロードします。

次に,いくつかの設定ファイルの内容を変更します。
設定ファイルは,「/etc/raddb」(Fedora7の場合はこれ)または,「/usr/local/etc/raddb」以下に出来ます。
注目する設定ファイルは,

・users(認証対象とするユーザーのIDやパスワードを記述)
・clients.conf(RADIUSクライアント(=スイッチ)のIPアドレスやパスワードを記述)
・eap.conf(認証方式を記述)

の三つです。
このうち,このラボ・シナリオでは,usersとclients.confに設定を書き加えたものを使います。
設定ファイルを変更し終わったら,radiusdサービスを再起動すればOKです。


これで,クライアントとRADIUSサーバーの両方で,MD5を使ったIEEE802.1X認証をする設定をしたことになります。

●スイッチの設定
いよいよスイッチの設定です。
スイッチは基本的に,IEEE802.1X認証で使うEAPパケットを仲介するだけです。
なので,どの認証方式を使うかという設定は必要ありません。
設定の流れは,以下のようになります。

■スイッチでIEEE802.1Xを有効にする
以下の三つはセットで覚えてしまいましょう。
SwitchA(config)#aaa new-model
SwitchA(config)#aaa authentication dot1x default group radius
SwitchA(config)#dot1x system-auth-control

■RADIUSサーバーと通信するための設定をする
RADIUSサーバーのIPアドレスRADIUSサーバーとの通信に使うポート番号RADIUSサーバーとの通信に使うパスワード自身のIPアドレス,を設定します。
SwitchA(config)#radius-server host 192.168.100.100 auth-port 1812 key cisco
SwitchA(config)#interface vlan 1
SwitchA(config-if)#ip address 192.168.100.50 255.255.255.0
SwitchA(config-if)#no shut
SwitchA(config-if)#exit

■ポートでIEEE802.1Xを有効にする
IEEE802.1Xはアクセスポートで有効になるので,switchport mode accessコマンドを入れておきます。
SwitchA(config)#interface fastEthernet 0/1
SwitchA(config-if)#switchport mode access
SwitchA(config-if)#dot1x port-control auto

スイッチの設定は以上です。

●動作の確認
では,パソコンをスイッチにつないで,IEEE802.1X認証の動作を実際に確認してみましょう。

その前に,認証前のスイッチの状態を見ておきます。
show dot1xコマンドで,IEEE802.1X認証の様子を確認できます。
基本は,show dot1x allです。

Switch#show dot1x all
Dot1x Info for interface FastEthernet0/1
----------------------------------------------------
PortStatus     = UNAUTHORIZED
MaxReq       = 2
MaxAuthReq    = 2
HostMode     = Single
PortControl     = Auto
ControlDirection = Both
QuietPeriod     = 60 Seconds
Re-authentication = Disabled
ReAuthPeriod   = 3600 Seconds
ServerTimeout   = 30 Seconds
SuppTimeout    = 30 Seconds
TxPeriod      = 30 Seconds
Guest-Vlan    = 0

IEEE802.1Xを有効にしたFastEthernet0/1で,PartStatusが「UNAUTHORIZED」となっており,認証していない状態であるのがわかります。

では,パソコンをスイッチのFastEthernet0/1ポートにつないでみましょう。
つなぐと,パソコンには,以下のような吹き出しが出現します。



吹き出しをクリックすると,以下の画面が出てきます。
ここでは,RADIUSサーバーのusersファイルに記述したユーザー名「user-a」,パスワード「user-a」と入力します。


認証がOKならば,パソコンには「ローカルエリア接続に接続しました」というメッセージが出るはずです。
認証後のスイッチの様子を見てみましょう。

Switch#show dot1x all
Dot1x Info for interface FastEthernet0/1
----------------------------------------------------
Supplicant MAC 000b.9728.cd60
  AuthSM State    = AUTHENTICATED
  BendSM State    = IDLE
  Posture        = N/A
PortStatus     = AUTHORIZED
MaxReq       = 2
MaxAuthReq    = 2
HostMode     = Single
PortControl     = Auto
ControlDirection = Both
QuietPeriod     = 60 Seconds
Re-authentication = Disabled
ReAuthPeriod   = 3600 Seconds
ServerTimeout   = 30 Seconds
SuppTimeout    = 30 Seconds
TxPeriod      = 30 Seconds
Guest-Vlan    = 0

パソコンのMACアドレスが表示され,PartStatusが「AUTHORIZED」になっているのがわかります。
これ以降,スイッチを超えた通信ができるようになります。


(おまけ)
●debugでやりとりしたパケットを確認してみる
debugコマンドを使って,認証のやりとりを見てみましょう。

Switch#debug dot1x packets
Dot1x packet info debugging is on
Switch#
01:44:19: dot1x-packet:Tx EAP-Failure, id 0, ver 1, len 4 (Fa0/1)
01:44:19: dot1x-packet:Tx sa=000e.d7f6.9181, da=0180.c200.0003, et 888E (Fa0/1)
01:44:19: dot1x-packet:Tx EAP-Request(Id), id 1, ver 1, len 5 (Fa0/1)
01:44:19: dot1x-packet:Tx sa=000e.d7f6.9181, da=0180.c200.0003, et 888E (Fa0/1)
01:44:49: dot1x-packet:Tx EAP-Request(Id), id 1, ver 1, len 5 (Fa0/1)
01:44:49: dot1x-packet:Tx sa=000e.d7f6.9181, da=0180.c200.0003, et 888E (Fa0/1)

01:45:19: dot1x-packet:Tx EAP-Request(Id), id 1, ver 1, len 5 (Fa0/1)
01:45:19: dot1x-packet:Tx sa=000e.d7f6.9181, da=0180.c200.0003, et 888E (Fa0/1)

Switch#
01:45:12: dot1x-packet:Rx EAP-Response(Id), id 1, ver 1, len 11 (Fa0/1)
01:45:12: dot1x-packet:Rx sa=000b.9728.cd60, da=0180.c200.0003, et 888E (Fa0/1)
01:45:12: dot1x-packet:Tx EAP-Request(Id), id 0, ver 1, len 5 (Fa0/1)
01:45:12: dot1x-packet:Tx sa=000e.d7f6.9181, da=0180.c200.0003, et 888E (Fa0/1)
01:45:12: dot1x-packet:Rx EAP-Response(Id), id 0, ver 1, len 11 (Fa0/1)
01:45:12: dot1x-packet:Rx sa=000b.9728.cd60, da=0180.c200.0003, et 888E (Fa0/1)
01:45:12: dot1x-packet:Tx EAP-Request(MD5), id 1, ver 1, len 22 (Fa0/1)
01:45:12: dot1x-packet:Tx sa=000e.d7f6.9181, da=0180.c200.0003, et 888E (Fa0/1)
01:45:12: dot1x-packet:Rx EAP-Response(MD5), id 1, ver 1, len 28 (Fa0/1)
01:45:12: dot1x-packet:Rx sa=000b.9728.cd60, da=0180.c200.0003, et 888E (Fa0/1)
01:45:12: dot1x-packet:Tx EAP-Success, id 1, ver 1, len 4 (Fa0/1)
01:45:12: dot1x-packet:Tx sa=000e.d7f6.9181, da=0180.c200.0003, et 888E (Fa0/1)
01:45:13: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up


メッセージは,2行が1セットになっています。
スイッチは,そのEAPパケットを仲介する役目になり,送信(Tx)と受信(Rx)したパケットが表示されています。
ちなみに,「et 888E」というのは,MACフレームの「EtherType」値のことで,「888E」はEAPのことです。

青字の部分が,パソコンをスイッチにつないだ後,スイッチがパソコンに出したパケットです。
最初に「EAP-Failure」パケットを出し,その後,30秒ごとに「Reauest(Id)」が出ています。
最初に「Failure」でシーケンスを初期化し,その後30秒ごとにID入力を促しているわけです。

緑字の部分が,パソコンでIDとパスワードを入力した後にスイッチがやりとりしたパケットです。
MD5の認証データをやりとりし,最後に「EAP-Success」パケットを送信しています。
そして最終的に,ライン・プロトコル(レイヤー2)がアップしたことを示すメッセージが出ているのがわかります。

Catalyst 3560 スイッチ ソフトウェア コンフィギュレーション ガイド Cisco IOS Release 12.2(37)SE
http://www.cisco.com/japanese/warp/public/3/jp/service/manual_j/sw/cat30/3560scg3/chapter09/8553_03_9.shtml

スイッチング・ラボ
IEEE802.1X認証の基本設定
IEEE802.1X認証(認証VLAN)
EtherChannel(固定設定)
EtherChannel(PAgP)
EtherChannel(LACP)
EtherChannel(レイヤー3)
SPAN