Meraki Adaptive policyとISE連携について（＋Catalyst ）

:::note info
この記事は[Cisco Systems Japan Advent Calendar 2024]( https://qiita.com/advent-calendar/2024/cisco)の６日目の記事となります。
:::
<details>
<summary>Cisco Systems Japan Advent Calendar</summary>
2017年版: https://qiita.com/advent-calendar/2017/cisco
2018年版: https://qiita.com/advent-calendar/2018/cisco
2019年版: https://qiita.com/advent-calendar/2019/cisco
2020年版 1枚目: https://qiita.com/advent-calendar/2020/cisco
2020年版 2枚目: https://qiita.com/advent-calendar/2020/cisco2
2021年版 1枚目https://qiita.com/advent-calendar/2021/cisco
2021年版 2枚目https://qiita.com/advent-calendar/2021/cisco2
2022年版(1,2): https://qiita.com/advent-calendar/2022/cisco
2023年版: https://qiita.com/advent-calendar/2023/cisco
2024年版: https://qiita.com/advent-calendar/2024/cisco <---こちら
</details>

# はじめに
MerakiのMS130XでAdaptive Policyがアーリーアクセスプログラムより利用できるようになりました(2024年12月時点)。これによりエンドポイントに近い場所で、Security group tags (SGTs) が割り当てられます。
また、ISEとMerakiが連携することで、Catalyst&Meraki双方を共通ポリシー（Common Policy）で運用が可能となります。
今回は**ISE‐Meraki連携方法**、**MerakiのAdaptive Policy設定方法**、**Catalyst・Meraki混在の環境の設定方法**について記載しています。
※SGTやポリシーの設定は完了している状態からISEとMerakiを連携しております。（本文中にざっくり記載しています）

# 構成品

* ISE(version:3.3.430)
* MS130-8X (version:MS 17.1.2)
* MR55 (version:MR30.7)
* C9200CX-12P-2X2G
* C9800-L-C-K9
* Windows端末

# Meraki Adaptive Policy ＆ ISE（＋Catalyst ）設定の流れ
MerakiダッシュボートとISEの連携についてです。設定方法は以下の流れとなっており、参照したURLを記載しております
* ISE‐Meraki連携方法
　→[ISE and Meraki Integration for the SGT Policy](https://community.cisco.com/t5/security-knowledge-base/ise-and-meraki-integration-for-the-sgt-policy/ta-p/4994519)、[動画](
https://www.youtube.com/watch?v=3kykVUA83d4)
* Meraki Adaptive Policyの設定と確認
　→[Adaptive Policy Configuration Guide](https://documentation.meraki.com/General_Administration/Cross-Platform_Content/Adaptive_Policy_Configuration_Guide)
* ISEネットワークデバイス・ポリシー設定
　→[Adaptive Policy and Cisco ISE](
https://documentation.meraki.com/General_Administration/Cross-Platform_Content/Adaptive_Policy_and_Cisco_ISE)
* Merakiダッシュボードでのデバイス設定
  * MSスイッチのアクセスポリシー
　→[MS Switch Access Policies](https://documentation.meraki.com/MS/Access_Control/MS_Switch_Access_Policies_(802.1X))
  * Meraki MSにおけるAdaptive Policyの設定
　→[Adaptive Policy MS Configuration Guide](https://documentation.meraki.com/General_Administration/Cross-Platform_Content/Adaptive_Policy_MS_Configuration_Guide)
* Catalyst Switchと接続時の設定（Catalyst、MS）
* Adaptive Policy構成ガイド、Lisenceについて[Adaptive Policy Configuration Guide](https://documentation.meraki.com/General_Administration/Cross-Platform_Content/Adaptive_Policy_Configuration_Guide)
Adaptive Policyを実施するにあたりLicenseはAdvancedgが必要です。

※2024年12月時点で、MS130XはMerakiアーリーアクセスプログラムよりお試しができますので本機能をONにして検証しました。
<font color="Green">オーガナイゼーション->新機能を試す</font>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629197/93df212c-0557-e545-c9ef-17341b4e8ae0.png)



# Meraki Adaptive Policy ＆ ISEイメージ
MerakiとISEを連携させ、MSに接続しているサーバーやクライアント端末のアクセス制御を行います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629197/137c927d-c979-b459-2183-81ad732654f0.png)


# Meraki Adaptive Policy ＆ ISE
## ISE IntegrationsよりMeraki連携
ISEのポリシーをMerakiへ連携するために、ISEで設定を行います。
<font color="Blue">
ワークセンタ->TrustSec->Integrations->Meraki->Overview->Connect Meraki
</font>

**Connect Meraki**  
* Connection name:任意
* Meraki Dashboard API Hostname(API URL)：api.meraki.com
* API Key：自身のKeyを入力

３点を記載後「Connect」を実行し、ISEとMerakiの接続が完了すると「Connected」となります。
次に、Organizationをプルダウンより選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629197/4921af27-f4a2-8a20-414c-650201fe24d5.png)

<details>
<summary>APIキーが不明な場合</summary>

Merakiのダッシュボードから確認を行います。
<font color="Green">
人ボタン->MyProfile
</font>

* API access
こちらに記載されているAPIをISEへ登録します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629197/ab0b2b3d-5b43-9613-3fe3-b6f0b83bef86.png)

</details>

**Sync Interval**
同期の間隔を設定します。設定変更後に手動で同期することもできます。
* Sync Interval：５～３０分

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629197/29015a15-c27b-778c-d8b7-391341b39601.png)


**Select Egress Policies**
Meraki Organizations と同期する Egress Policies を選択します。 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629197/ab357204-ac97-304a-de9b-44a424ecc0d4.png)

**Select ACLs**
Meraki Organizations と同期する SGACL を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629197/fd51502c-2149-7a8a-d7a7-ee30f16244bb.png)

**Select SGTs**
Meraki Organizations に同期する Security Groups を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629197/bfc6ed8e-9bdf-c4ea-5966-862504cf9825.png)

**Summary**
設定内容を確認して「Finish」をクリックします。
これでISEとMerakiを連携できました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629197/53e3b1da-e4aa-3495-7e4b-e733465dcff9.png)


## Meraki Adaptive Policy
ISEと連携したポリシーを確認します。
<font color="Green">オーガナイゼーション->Adaptive Policy</font>
ISE連携を行う前のMerakiのポリシーは以下のようになっていると思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629197/883db75c-b1a7-3fd9-27c6-1837b204e27b.png)

ISE連携を行うと次のキャプチャーのように、ISEからポリシー情報などが連携されます。
ISEとMerakiで表現が異なりますね。
* ポリシー（Egress Polices）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629197/6eb02dd4-67a4-a51c-ad01-48c4bf48af42.png)

* グループ（SGTs）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629197/b0c949e7-e368-80ed-8eb4-25a1ff9a8f54.png)

* カスタムACL（ACLs）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629197/ee1bf25c-c39f-dbbb-1f5e-2d77bc4eeeb4.png)

* ネットワーク
ネットワークでAdaptive Policyを適応するNetworkを選択します。状態が緑色になっているNetworkでAdaptive Policyが利用できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629197/ab6b9bf1-573b-46b4-2abe-671a30773052.png)


## ISEのネットワークデバイス・ポリシー設定
ISEが認証要求を処理するため、Cisco ISE内でMerakiデバイスを RADIUSクライアントとして設定する必要があります。


#### MS130Xのネットワークデバイス登録
ISEへネットワークデバイスとして登録します。
<font color="Blue">
管理->ネットワークデバイス->ネットワークデバイス->追加(add)
</font>
設定は次の項目を実施します。
* 名前
* IPアドレス（今回は１台のみ登録）
* 共通秘密キー※後程Merakiダッシュボードへの登録時使用
* TrustSec
<details>
<summary>デバイス登録時のキャプチャ</summary>

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629197/9d3dca72-2c59-a033-3142-7e44881964c2.png)
</details>

#### ISEへアクセス制御に必要なポリシーやSGTなどを登録
CatalystSwitchで制御する際と同じように設定が必要となります。
１度MerakiとISEを連携した後に、項目追加などの変更があった場合はIntegrationで再設定します。
<font color="Blue">
ワークセンター->TrustSec>Integration->Sync Selections
</font>

* アクセスの条件は以下のように設定しています
  * EmployeesはEMサーバーへアクセス可能、HRサーバへアクセス不可
  * HRはHRサーバへアクセス可能
  * GuestはEMサーバー・HRサーバーへアクセス不可
<details>
<summary>ISEの設定内容は参考で載せています。</summary>


* セキュリティグループ
ISEでグループを作成します。（例：HR）
<font color="Blue">ワークセンタ->TrustSec->コンポーネント
</font>

![スクリーンショット 2024-12-03 145158.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629197/36ad8970-7002-029f-82fe-a7f8ac0aff66.png)

* ポリシー
<font color="Blue">ポリシー->ポリシーセット</font>
   * 認証ポリシー
認証ポリシーでクライアントのクレデンシャル情報を確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629197/5c20560c-290c-d67f-8f42-83203315d3fe.png)
   * 認可ポリシー
認可ポリシーで認証に政教したユーザへSGTを割り当てアクセス制御
![スクリーンショット 2024-12-03 152252.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629197/7ec9b018-663c-92f1-d6a5-2314a5f42aa6.png)

* マトリクス
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629197/2535a8e4-8950-d411-6c53-359a2b93ea2b.png)

</details>

## Merakiダッシュボードでデバイスの設定

**アクセスポリシー**
Radiusの設定、秘密キーの設定を行います。

<font color="Green">
Switch->構成->アクセスポリシー
</font>

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629197/aedc649a-6bf5-ada0-26e4-163662be0a47.png)
本設定では１つのポートでそれぞれ認証させたいので`マルチ認証(MulutiAuth)`としています。

**MS130XにおけるAdaptive Policyに基づくアクセス制御の設定**
・ISEと連携しクライアントが802.1x（PEAP,EAP)やMAB認証
・SwitchのポートにAdaptive Policyグループを割り当てる
・ネットワークデバイス接続の際の設定

**クライアント端末が802.1xを行い接続する設定例**
クライアントがISEと認証を行い、SGTが割り当てられます。ISEの認証情報からMerakiダッシュボード上でもAdaptive Policyグループ情報が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629197/abab3b08-8260-f503-f37f-e26079368aba.png)


**MSスイッチのポートにAdaptive Policyグループ設定**
スイッチのポートに接続した端末をすべて指定のAdaptive Policyグループに割り当てる設定です。
今回はAdaptive policyグループはITを割当ています。
![スクリーンショット 2024-12-04 140741.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629197/b6f5a952-20ef-a8d4-701c-6896b168345d.png)

**ネットワークデバイス（MRなど）接続時の設定例**
Peer SGT capableを有効にするとデバイス間でSGTが伝搬できるようです。
また、グループは２のInfrastructureを選択する必要があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629197/e594471c-6449-7d0f-d5c1-b93600062136.png)


**クライアント端末接続時の例**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629197/521b990b-93fc-ab2f-d5e9-9bd121c49a7c.png)

Adaptive Policyグループが各クライアントに割り当てることができました。ISEへ設定されている内容の通り、通信の制御が可能となります。

# Catalyst ＆ Meraki
ネットワーク内にCatalyst・Meraki同時に配置されている場合も、ISEのポリシーで制御が可能となります。また、Catalyst SwitchだけではなくWirelessも同様に制御が可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629197/74b00664-5b7d-eefa-0618-9dfd0d14d346.png)

## C9200CXとMeraki MS130X接続時の設定
お試しでC9200CXとMeraki MS130Xを接続してみました。

**Meraki MS130X**
Meraki MS130XがCatalyst Switchと接続する際の設定は、MerakiのMRなどネットワークデバイス接続と同様に以下のように設定します。
* Adaptive policy Group:２
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629197/0c078f35-6e25-d866-4c10-31fb8ddf6d0a.png)


**C9200CX**
C9200CXはMerakiのポート設定に合わせて、手動でSGTを設定します。設定例は以下のようになります。

```shell
switchport trunk native vlan 1
switchport mode trunk
cts manual                  #TrustSecを手動で設定
policy static sgt 2 trusted #スタティック許可ポリシーを設定

```

**MS130Xのパケットキャプチャ**
MerakiダッシュボードでMS130がCatalystと接続するポートでキャプチャを取得しました。
Catalystにサーバを接続し、Merakiへクライアントを接続して、HRユーザがHRサーバにPingしている際のキャプチャです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629197/459750e2-c8ae-4278-afd2-afecf39eecb7.png)
※C9200CXでパケットキャプチャーを行う場合は該当のポートをミラーリングしてキャプチャを取得することをお勧めします。C9200CXのGUIでパケットキャプチャーは取得できるのですが、なぜかSGTが見えなかったためです。

**C9200CXとMerakiMS130Xで接続して、各々接続されているクライアントで制御することができました。**

# おわりに
MerakiのAdaptive Policyを試すにあたって、Meraki・ISE連携を行いました。また、MerakiだけではなくCatalystも連携し、ポリシー制御が行えました。

ISEが共通ポリシー（Common Policy）としてCatalyst・Merakiを制御できるようになったことで、各々ポリシー制御する必要がなくなりますね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629197/c0c2ba13-4fc4-82d5-b14e-2817632acdd5.png)


とても長い投稿となりましたが、最後までお読みいただきありがとうございます。

# 免責事項
本サイトおよび対応するコメントにおいて表明される意見は、投稿者本人の個人的意見であり、シスコの意見ではありません。本サイトの内容は、情報の提供のみを目的として掲載されており、シスコや他の関係者による推奨や表明を目的としたものではありません。各利用者は、本Webサイトへの掲載により、投稿、リンクその他の方法でアップロードした全ての情報の内容に対して全責任を負い、本Web サイトの利用に関するあらゆる責任からシスコを免責することに同意したものとします。