#はじめに
この記事はシスコの有志による Cisco Systems Japan Advent Calendar 2019 の 2 日目として投稿しています。
2017年版: https://qiita.com/advent-calendar/2017/cisco
2018年版: https://qiita.com/advent-calendar/2018/cisco
2019年版: https://qiita.com/advent-calendar/2019/cisco
Catalystスイッチでホストの2要素認証の実現は可能ですか?と時々お問い合わせを受けます。
CatalystスイッチではMACアドレス(MAC認証バイパス/Mab)/802.1x認証/WEB認証方式をサポートし
認証のフェールオーバー順序を指定したり、 MACアドレス(Mab)認証失敗時にWEB認証にフェールオーバーする
など、"or"条件での複数認証の方法は各種ドキュメントで解説がありますが、この記事では、
MACアドレス認証とWEB認証の2要素認証 ("and"条件) の実現方法と設定例、動作確認結果を
ご紹介したいと思います。CatalystではWEB認証方式として、ローカルWEB認証 と
中央WEB認証/Central Web Auth(CWA) の方式がありますが、本記事では、CWAの方式を使用します。
#Centeral Web Authentication (CWA)とは
Cisco Identity Services Engine (ISE)を使用したWEB認証方式です。
ISEは、RadiusサーバとWEEBポータルとして機能する中央ポリシーサーバの位置付けになります。
#構成と設定例
下記の要件を実現する構成と設定例をご紹介します。
##要件
-1ポート配下に島ハブを介して複数の端末が存在する。
-各端末単位でMACアドレス認証(Mab)とWEB認証の両方が成功した場合にのみアクセスを許可する。
(2要素認証)
-2要素認証成功後にユーザ属性に基づいて各ユーザ端末に対してダイナミックにVLAN割り当てを行う。
##ISEの設定
2要素認証を実現するためのポリシー設定はISEでのポリシー定義がキーとなり、 MACアドレス(Mab)認証失敗時にWEB認証にフェールオーバーする設定例の応用で実現できます。ここでは2要素認証を実現するための各ポリシー設定のポイントをご紹介します。
###Authentication policy 設定のポイント
MACアドレス認証(Mab)時の条件として、認証失敗時(Auth fail)、端末未登録時(User not found)に、アクセス拒否(REJECT)する設定を適用します。
###Authorization policy 設定のポイント
MACアドレス認証成功後に適用するポリシーとして、認証成功時("Network_Access_Authentication_Passed")にCWAを実行する認可プロファイル("CentralWebauth")を指定するポリシーを作成します。
CWAの認可プロファイルではスイッチに返す認証前のアクセス制限用の動的アクセスリストと、WEB認証のためのポータルリダイレクト用の URLを定義します。
WEB認証成功後のCoAによる再認証用のポリシーとして、Teachersグループに所属するユーザデバイスにはVLAN10を、Studentsグループに所属するユーザデバイスにはVLAN20を動的に割り当てるポリシーを作成します。
CWA認可プロファイル
VLAN割り当て認可プロファイル
##Catalystスイッチの設定
キーとなる2要素認証のポリシーはISE側のポリシーで定義するため
スイッチで行う設定は基本的なRadius/CoA許可設定とMACアドレス認証(Mab)、WEBポータルへのリダイレクトトラフィック用のACL設定です。
#Radius設定
aaa new-model
aaa group server radius ISE_GRP
server name ISE
aaa authentication dot1x default group ISE_GRP
aaa authorization network default group ISE_GRP
!
dot1x system-auth-control
!
radius server ISE
address "ise ip address" auth-port 1812 acct-port 1813
key "shared-secret-key"
#CoA許可
aaa server radius dynamic-author
client server-key "shared-secret-key"
!
#Interface設定
interface GigabitEthernet1/0/5
switchport access vlan 3
switchport mode access
device-tracking
authentication host-mode multi-auth
authentication order mab
authentication port-control auto
mab
spanning-tree portfast
!
#Webポータルへのリダイレクト用設定
ip http server
ip http secure-server
!
ip access-list extended redirect
deny ip any host "ise ip address"
permit tcp any any eq www
permit tcp any any eq 443
#dynamic 割り当て用VLAN定義
vlan 10
vlan 20
##動作確認ログ
###Macアドレス認証成功後
認可(Authorization)プロセスが開始され、サーバから動的ACLとWEB認証用のリダイレクト用URLがスイッチに返されます。
Cat9200L#show authentication sessions interface gigabitEthernet 1/0/5 details
Interface: GigabitEthernet1/0/5
IIF-ID: 0x1782A091
MAC Address: 000c.290a.57b1
IPv6 Address: Unknown
IPv4 Address: Unknown
User-Name: 00-0C-29-0A-57-B1
Status: Authorized
Domain: DATA
Oper host mode: multi-auth
Oper control dir: both
Session timeout: N/A
Common Session ID: B7AC460A0000002DCB00E39B
Acct Session ID: Unknown
Handle: 0x00000023
Current Policy: POLICY_Gi1/0/5
Local Policies:
Service Template: DEFAULT_LINKSEC_POLICY_SHOULD_SECURE (priority 150)
Security Policy: Should Secure
Server Policies:
URL Redirect ACL: redirect
URL Redirect: https://10.70.170.168:8443/portal/gateway?sessionId=B7AC460A0000002DCB00E39B&portal=429c0e20-0fa7-11ea-9969-000c297fae95&action=cwa&token=87e5533f96b13f570ab1d6445f5ec6bd
ACS ACL: xACSACLx-IP-DACL-5dde097e
Method status list:
Method State
mab Authc Success
----------------------------------------
Interface: GigabitEthernet1/0/5
IIF-ID: 0x1D77E1AB
MAC Address: 000c.297c.1ec9
IPv6 Address: Unknown
IPv4 Address: Unknown
User-Name: 00-0C-29-7C-1E-C9
Status: Authorized
Domain: DATA
Oper host mode: multi-auth
Oper control dir: both
Session timeout: N/A
Common Session ID: B7AC460A0000002CCB00E397
Acct Session ID: Unknown
Handle: 0xab000022
Current Policy: POLICY_Gi1/0/5
Local Policies:
Service Template: DEFAULT_LINKSEC_POLICY_SHOULD_SECURE (priority 150)
Security Policy: Should Secure
Server Policies:
URL Redirect ACL: redirect
URL Redirect: https://10.70.170.168:8443/portal/gateway?sessionId=B7AC460A0000002CCB00E397&portal=429c0e20-0fa7-11ea-9969-000c297fae95&action=cwa&token=923ce99eb810cbc544f60af11dd4ff27
ACS ACL: xACSACLx-IP-DACL-5dde097e
###WEB認証成功後
ユーザ属性に応じたVLANがサーバからスイッチに返され各ホスト毎に適用されます。
Cat9200L#show authentication sessions interface gigabitEthernet 1/0/5 details
Interface: GigabitEthernet1/0/5
IIF-ID: 0x1C7EBE53
MAC Address: 000c.290a.57b1
IPv6 Address: Unknown
IPv4 Address: 192.168.10.4
User-Name: yamada
Status: Authorized
Domain: DATA
Oper host mode: multi-auth
Oper control dir: both
Session timeout: N/A
Common Session ID: B7AC460A0000002FCB41353B
Acct Session ID: Unknown
Handle: 0xbc000025
Current Policy: POLICY_Gi1/0/5
Local Policies:
Service Template: DEFAULT_LINKSEC_POLICY_SHOULD_SECURE (priority 150)
Security Policy: Should Secure
Server Policies:
Vlan Group: Vlan: 10
Method status list:
Method State
mab Authc Success
----------------------------------------
Interface: GigabitEthernet1/0/5
IIF-ID: 0x178E109E
MAC Address: 000c.297c.1ec9
IPv6 Address: Unknown
IPv4 Address: 192.168.20.1
User-Name: suzuki
Status: Authorized
Domain: DATA
Oper host mode: multi-auth
Oper control dir: both
Session timeout: N/A
Common Session ID: B7AC460A0000002ECB413537
Acct Session ID: Unknown
Handle: 0x1c000024
Current Policy: POLICY_Gi1/0/5
Local Policies:
Service Template: DEFAULT_LINKSEC_POLICY_SHOULD_SECURE (priority 150)
Security Policy: Should Secure
Server Policies:
Vlan Group: Vlan: 20
# 最後に
最後まで読んでいただきありがとうございました。
CatalystスイッチではAND条件での2要素認証は実現不可、と思われている方が多いと感じたため
今回この記事を書かせていただきました。
今回ご紹介した構成と設定例はあくまで一例ですが、CWA方式の場合、ISEのポリシー設定次第で
柔軟な条件設定が可能です。ご参考になれば幸いです。
参考
Catalystの認証モード
Cat9200L(config)#interface gigabitEthernet 1/0/1
Cat9200L(config-if)#authentication host-mode ?
multi-auth Multiple Authentication Mode
multi-domain Multiple Domain Mode
multi-host Multiple Host Mode
single-host SINGLE HOST Mode
認証モード | 説明 |
---|---|
single-host | 単一のMACアドレスのみを認証し、2台目以降のMACアドレスは拒否。 |
multi-host | 最初のMACアドレスが認証されると2台目以降は認証結果を引き継ぎ認証をバイパス。 |
multi-auth | 音声端末は1台、データ端末は複数台同時に認証可能。各ホスト毎に異なるdACL/dVLANポリシーを適用可能。 |
multi-domain | 各ドメイン(Voice / Data)で単一MACアドレスのみが認証され、各ドメインの2台目以降は拒否。 |
Catalystの認証順序
Cat9200L(config)#interface gigabitEthernet 1/0/1
Cat9200L(config-if)#authentication order ?
dot1x Authentication method "dot1x" allowed
mab Authentication method "mab" allowed
webauth Authentication method "webauth" allowed
- 上記コマンドのwebauthはローカルwebauth方式です。
Catalystの認証の優先順位
個々のポートの方式についてフェールオーバー順を制御するための設定です。
認証の優先順位を設定するには、認証順序を設定しておく必要があります。
Cat9200L(config)#interface gigabitEthernet 1/0/1
Cat9200L(config-if)#authentication priority ?
dot1x Authentication method "dot1x" allowed
mab Authentication method "mab" allowed
webauth Authentication method "webauth" allowed
- 上記コマンドのwebauthはローカルwebauth方式です。
#免責事項
本サイトおよび対応するコメントにおいて表明される意見は、投稿者本人の個人的意見であり、シスコの意見ではありません。本サイトの内容は、情報の提供のみを目的として掲載されており、シスコや他の関係者による推奨や表明を目的としたものではありません。各利用者は、本Webサイトへの掲載により、投稿、リンクその他の方法でアップロードした全ての情報の内容に対して全責任を負い、本Web サイトの利用に関するあらゆる責任からシスコを免責することに同意したものとします。