近年では誰でも組織内のネットワークには接続させず何らかの認証を導入しているところのほうが割合的に多いです。その中の手段としてIEEE802.1X認証,、Mac認証、Web認証の3つが挙げられます。これらの認証の仕組みは大きく以下の3つの要素で構成されています。
項目 | ノード | 説明 |
サプリカント | クライアント端末 | LANスイッチへアクセスを要求しスイッチからの 要求に応答するデバイスです。 |
オーセンティケータサーバ | RADIUSサーバ | クライアントの実際の認証を行うデバイスです。 認証サーバをクライアントを識別しアクセスの許可/拒否を スイッチに通知します。 |
オーセンティケータ | LANスイッチ 無線コントローラなど |
クライアントの認証ステータスに基づいて ネットワークへの物理アクセスを制御します。 |
Catalystでの認証機能というのは正直、あまり万能なものではなく他社製品と比較して見劣りするところもあったりします。しかし、IOSのバージョンアップによって機能的に進化してきている影響もあるためそのバージョンにより設定方法、動作仕様が異なります。ここではCatalyst2960の15.0(2)SE4を前提に記載致します。12.2(50)SEより前のバージョンでは設定方法が異なりますので注意してください。
Catalyst上で設定する具体的な認証方法については上にも記載したよう以下の3つがあります。
○ 802.1X ( ユーザID / パスワード )
○ Mac認証バイパス
○ Web認証
実務上で最も多いのはMac認証バイパスです。ユーザID/Passでは漏れる可能性がある。Web認証はエンドユーザの手を煩わす。最も現実的な手法はMac認証という意見を持ったユーザが多いです。Catalystの特定バージョン以上のIOSではこれらを任意に組み合わせて実施することが可能となっており、マルチ認証と呼ばれます。例えば最初の接続段階ではMac認証を試み、NGならdot1x認証、それでもダメならWeb認証を試み、端末によって認証方法が異なっても構わず、どれかで認証されれば接続可能という状態です。
Catalyst上でいずれの認証方法を用いるにしても認証サーバであるRadiusについてはCiscoのRadiusであることがサポートの前提となります。特にWeb認証に関してはCiscoのRadiusが必須となりますがdot1x認証またはMac認証であれば一般的なRadiusで動作可能です。ここでは検証環境なのでオープンソースのRadiusであるFreeRadiusを用いてdot1x認証とMac認証の動作確認をとります。下記は主にRadius周りを中心としたグローバル設定です。
(config)# aaa new-model (config)# aaa authentication dot1x default group radius (config)# radius-server host 192.168.12.20 auth-port 1812 acct-port 1813 key test (config)# radius-server vsa send authentication (config)# dot1x system-auth-control |
上記のAAA設定を実施した場合、TelnetやConsoleで機器にログインする際にもRadiusに問い合わせにいくようになりますので、ローカルアカウントで認証させるため以下の設定も実施します。
(config)# aaa authentication login console local (config)# line con 0 (config-line)# login authentication console (config)# line vty 0 4 (config-line)# login authentication console |
あとは各ポートごとに有効/無効を設定することになります。デフォルトでは全てのポートが無効であり無条件に接続可能です。また、dot1xを有効にできるポートはアクセスポートに限定されます。トランクポートなどには設定できませんので注意してください。また、Mac認証のみであれば最後のdot1x paeコマンドは不要です。以下、設定例です。
(config)# interface Fa0/1 (config-if)# authentication port-control [auto | force-authorized | force-unauthorized ] (config-if)# dot1x pae authenticator |
各ポートに対して設定できるパラメータは以下の3つです。
パラメータ | 説明 |
auto | 802.1x 認証をイネーブルにします。 ポートは最初、無許可ステートであり認証に成功するとポートが許可ステートに変わり、 認証されたクライアントからの全フレームがポート経由での送受信を許可されます |
force-authorized | 802.1x 認証をディセーブルにし、認証情報の交換を必要とせずに、 ポートを許可ステートに変更します。デフォルト設定です。 |
force-unauthorized | クライアントからの認証の試みをすべて無視し、ポートを無許可ステートのままにします。 スイッチはポートを介してクライアントに認証サービスを提供できません。 |
Catalystの認証を有効にする場合、下記のようにCatalyst 15系IOSでは以下の4つのモードから選択可能となっています。
(config-if)# authentication host-mode [multi-auth | multi-domain | multi-host | single-host] |
それぞれの意味は下記のようになります。
項目 | 説明 |
multi-auth | 1ポート配下でMAB / Dot1X / Web認証を混在させることが可能なモード。 |
multi-domain | 1ポート配下でPC端末をIP電話を混在させることが可能なモード。 |
multi-host | 1ポート配下で複数のPC端末を接続させることが可能なモード。 |
single-host | 1ポートにつき1端末という最もシンプルな構成。デフォルト。 |
IEEE802.1X / MAB / Web認証をどのような順序で行うのか定義するのが以下のコマンドです。下記ではMAC認証を試み、NGであればdot1x認証を行うよう順序を設定しています。Web認証は指定してないので実施されません。また、Mac認証を行う場合は下記のようにmabコマンドも必要です。
(config-if)# authentication order mab dot1x (config-if)# mab |
スイッチとRADIUSサーバの間の疎通がとれなくなった場合に緊急用のVLANにポートをアサインしなおすことが可能です。下記はRADIUSとの接続性がなくなった時点でVlan10にポートをアサインし、接続性が回復したら自動復旧する設定です。authorizeとrenitializeで選択することができますが、authroizeは新規接続のみでreinitializeは認証済みホストも含めて全て緊急用Vlanに移動します。
(config-if)# authentication event server dead action [authorize | reinitialize] vlan 10 (config-if)# authentication event server alive action reinitialize |
さらに下記は認証に失敗した場合に別の特定VLANにアサインさせる場合の設定です。認証失敗の場合はVlan10にアサインさせます。
(config-if)# authentication event fail action authorize vlan 10 |
MAB認証を実施する場合、登録されていないMacアドレスが存在すれば延々と再認証を繰り返しますので以下の設定を実施して再認証させないようにしておきます。
(config-if)# authentication timer restart 0 |
以下は802.1Xの再認証設定となります。デフォルトは1時間おきですが2時間に変更しています。
(config-if)# authentication periodic (config-if)# authentication timer reauthenticate 7200 |
以上が主な設定となります。ポートの設定をまとめると以下のようになります。
interface FastEthernet0/1 switchport access vlan 100 switchport mode access authentication event fail action authorize vlan 10 authentication event server dead action reinitialize vlan 10 authentication event server alive action reinitialize authentication host-mode multi-auth authentication order mab dot1x authentication port-control auto authentication periodic authentication timer restart 0 authentication timer reauthenticate 7200 mab dot1x pae authenticator |
■RADIUSの設定
実際に認証を行おうとするとオーセンティケータ ( RADIUSサーバ ) が必要となります。
クライアントのMacアドレスは区切りなしにRadiusに送信されますのでFreeRadius側には以下の設定が必要となります。
# vi /etc/raddb/users # 下記のようにMacアドレスを追記する fc6198414589 Auth-Type:=Local, Cleartext-Password:="fc6198414589" |
正常に認証されればスイッチ側で以下のように表示されます。
# show authentication sessions Interface MAC Address Method Domain Status Session ID Fa0/1 fc61.9841.4589 mab DATA Authz Success C0A80C3C0000000B00E431AD |