内容

はじめに

前提条件

要件

使用するコンポーネント

背景説明

設定

ネットワーク図

Ubuntu 20.04でのCSDACの導入

Office 365コネクタの作成

vCenterコネクタの作成

確認

トラブルシュート

関連情報

はじめに

このドキュメントでは、Ubuntu 20.04上のAnsibleを使用して、オンプレミスFMCでDynamic Microsoft 365オブジェクト用にCSDACを導入し、統合する方法について説明します。

前提条件

要件

次の項目について理解しておくことをお勧めします。

- 基本的なLinuxコマンド。

- Python、Docker、およびAnsibleの基礎知識

- Office 365の基本的な知識。

使用するコンポーネント

このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。

- 7.2.5リリースを実行しているCisco Firewall Management Center(FMCv)Virtual VWware。

- Cisco Secure Dynamic Attributes Connector(CSDAC)リリース2.2

- Ubuntu 4vCPU/8GBリリース20.04。

- Dockerリリース24.0.6

- Python 3.8.10

- Ansible 2.12.10

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな（デフォルト）設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。

背景説明

Cisco Secure Dynamic Attributes(CSDAC)を使用すると、クラウドプロバイダーからネットワークやIPアドレスなどのデータを収集してCisco Secure Firewall Management Center(FMC)に送信し、アクセスコントロールポリシールールで使用できます。

Cisco Secure Dynamic Attributes Connectorを使用すると、AWS、Github、Google Cloud、Azure、Azure Service Tags、Microsoft Office 365、vCenterなどのさまざまなクラウドサービスプラットフォームのサービスタグとカテゴリを使用できます。

IPアドレスなどのネットワーク構造は、ワークロードの動的な性質とIPアドレスのオーバーラップの不可避な性質により、仮想、クラウド、およびコンテナ環境では信頼できません。場合によっては、仮想マシン(VM)名やセキュリティグループなどの非ネットワーク構成上でポリシールールを定義する必要があります。したがって、ファイアウォールポリシーは、IPアドレスまたはVLANが変更されても永続的です。これらのタグと属性は、Ubuntu、CentOs、またはRed Hat Enterprise Linux仮想マシンで実行されているダイナミック属性コネクタDockerコンテナを使用して収集できます。CentOSまたはRed HatにCSDACをインストールする場合は、公式のドキュメントガイドを参照してください。

Ubuntuホスト上の動的属性コネクタは、Ansible Collectionを使用してインストールされます。Cisco Secure Dynamic Attributesは、2種類のアダプタをサポートします。

- オンプレミスのセキュアファイアウォール管理センター。

- クラウド提供のファイアウォール管理センター。

この記事では、オンプレミスのセキュアファイアウォール管理センターを使用したMicrosoft Office 365クラウドサービス向けUbuntuホストでのCisco Secure Dynamic Attributes Connectの導入に焦点を当てています。

設定

このセクションは、次のセクションに分かれています。

- Ubuntu 20.04でのCSDACの導入。

- Office 365コネクタを作成します。

- vCenterコネクタを作成します。

ネットワーク図

Ubuntu 20.04でのCSDACの導入

このセクションでは、前提条件となるソフトウェアをUbuntuにインストールする方法について説明します。

手順1: Dockerがインストールされていないことを確認します。

root@tac:/home/tac# docker --version

Command 'docker' not found.

警告: Dockerがインストールされている場合は、Dockerのマニュアルを参照してアンインストールしてください。

手順2: Ubuntuリポジトリを更新します。

root@tac:/home/tac# sudo apt -y update && sudo apt -y upgrade

Hit:1 http://security-ubuntu-site/ubuntu focal-security InRelease

Hit:2 http://ubuntu-repository-web-site/ubuntu focal InRelease

Hit:3 http://ubuntu-repository-web-site/ubuntu focal-updates InRelease

Hit:4 http://ubuntu-repository-web-site/ubuntu focal-backports InRelease

Reading package lists... Done

Building dependency tree

Reading state information... Done

334 packages can be upgraded. Run 'apt list --upgradable' to see them.

Reading package lists... Done

Building dependency tree

....

ステップ3: Pythonのバージョンを確認します。

root@tac:/home/tac# /usr/bin/python3 --version

Python 3.8.10

警告: Pythonのバージョンが3.6より前の場合は、バージョン3.6以降をインストールする必要があります。

手順4：共通ライブラリをインストールします。

root@tac:/home/tac# sudo apt -y install software-properties-common

Reading package lists... Done

Building dependency tree

Reading state information... Done

...

ステップ5:Ansibleをインストールします。

root@tac:/home/tac# sudo apt-add-repository -y -u ppa:ansible/ansible && sudo apt -y install ansible

Hit:1 http://security-ubuntu-site/ubuntu focal-security InRelease

Get:2 http://personal-package-archive-site/ansible/ansible/ubuntu focal InRelease [18.0 kB]

Hit:3 http://ubuntu-repository-web-siteubuntu focal InRelease

Hit:4 http://ubuntu-repository-web-site/ubuntu focal-updates InRelease

Hit:5 http://ubuntu-repository-web-site/ubuntu focal-backports InRelease

Get:6 http://personal-package-archive-site/ansible/ansible/ubuntu focal/main amd64 Packages [1 132 B]

Get:7 http://personal-package-archive-site/ansible/ansible/ubuntu focal/main i386 Packages [1 132 B]

Get:8 http://personal-package-archive-site/ansible/ansible/ubuntu focal/main Translation-en [756 B]

Fetched 21.1 kB in 3s (7 526 B/s)

Reading package lists... Done

Reading package lists... Done

Building dependency tree

Reading state information... Done

...

ステップ6:Ansibleのバージョンを確認します。

root@tac:/home/tac# ansible --version

ansible [core 2.12.10]

config file = /etc/ansible/ansible.cfg

configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']

ansible python module location = /usr/lib/python3/dist-packages/ansible

ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections

executable location = /usr/bin/ansible

python version = 3.8.10 (default, May 26 2023, 14:05:08) [GCC 9.4.0]

jinja version = 2.10.1

libyaml = True

注: AnsibleがPython 2.xを参照するのは正常です。このコネクタは、Python 3.6を使用しています。

ステップ7:Ansibleでダイナミック属性コネクタソフトウェアを取得します。

root@tac:/home/tac# ansible-galaxy collection install cisco.csdac

Starting galaxy collection install process

Process install dependency map

Starting collection install process

Downloading https://galaxy-ansible-site/download/cisco-csdac-2.2.1.tar.gz to /root/.ansible/tmp/ansible-local-52406urwp91ou/tmpqabv89vb/cisco-csdac-2.2.1-fr29zaq5

Downloading https://galaxy-ansible-site/download/community-crypto-2.15.1.tar.gz to /root/.ansible/tmp/ansible-local-52406urwp91ou/tmpqabv89vb/community-crypto-2.15.1-dkc897hb

Installing 'cisco.csdac:2.2.1' to '/root/.ansible/collections/ansible_collections/cisco/csdac'

cisco.csdac:2.2.1 was installed successfully

Installing 'community.crypto:2.15.1' to '/root/.ansible/collections/ansible_collections/community/crypto'

Downloading https://galaxy-ansible-site/download/community-general-7.4.0.tar.gz to /root/.ansible/tmp/ansible-local-52406urwp91ou/tmpqabv89vb/community-general-7.4.0-cr9imbx3

community.crypto:2.15.1 was installed successfully

Installing 'community.general:7.4.0' to '/root/.ansible/collections/ansible_collections/community/general'

community.general:7.4.0 was installed successfully

ステップ8:csdacディレクトリに移動します。

root@tac:/home/tac# cd ~/.ansible/collections/ansible_collections/cisco/csdac/

ステップ9:マスタサービスをインストールします。

root@tac:~/.ansible/collections/ansible_collections/cisco/csdac# ansible-playbook default_playbook.yml --ask-become-pass

BECOME password:

[WARNING]: provided hosts list is empty, only localhost is available. Note that

the implicit localhost does not match 'all'

[WARNING]: running playbook inside collection cisco.csdac

PLAY [localhost] ***************************************************************

TASK [Gathering Facts] *********************************************************

ok: [localhost]

TASK [cisco.csdac.csdac : Define Python Interpreter] ***************************

ok: [localhost]

...

TASK [cisco.csdac.csdac : verify that core services are started] ***************

ok: [localhost]

TASK [cisco.csdac.csdac : verify that core services are started] ***************

ok: [localhost]

TASK [cisco.csdac.csdac : verify that core services are started] ***************

ok: [localhost]

TASK [cisco.csdac.csdac : verify that core services are started] ***************

ok: [localhost]

TASK [cisco.csdac.csdac : Post task] *******************************************

ok: [localhost] => {}

MSG:

Please login in to https://172.16.1.53 to configure csdac application

PLAY RECAP *********************************************************************

localhost : ok=72 changed=8 unreachable=0 failed=0 skipped=35 rescued=0 ignored=0

警告:「Dockerデーモンソケットで許可が拒否された」ことが原因でインストールが失敗した場合は、Cisco Bug ID CSCwh58312を検討するか、Cisco TACにお問い合わせください。

ステップ10:HTTPSプロトコルを使用して、CSDAC IPアドレスを使用してコネクタにログインします。

注：最初のログインはユーザ名「admin」、パスワード「admin」です。最初にログインが成功した後、システムはパスワードの変更を要求します。

Office 365コネクタの作成

ステップ1:ダイナミック属性コネクタにログインします。

ステップ2: [コネクタ]をクリックします。

ステップ3: Office 365コネクタを追加します。追加アイコン(+)をクリックし、「Office 365」をクリックします。

ステップ4：名前、ベースAPI URL、インスタンス名、およびオプションのIPの有効化または無効化を使用してコネクタを設定します。

次の点を考慮します。

- Pull Intervalのデフォルトは30秒です。

- ベースAPI URLは、Office 365情報を取得するためのURLです。Microsoftのドキュメントガイドの「Office 365 IPアドレスとURL Webサービス」を参照してください。

ステップ5：コネクタ設定を保存する前に、「テスト」をクリックしてテストが成功することを確認します。

ステップ6：保存して、ステータスが「OK」であることを確認します。

vCenterコネクタの作成

ステップ1：ダイナミック属性コネクタにログインします。

ステップ2: [アダプタ]をクリックします。

ステップ3：新しいアダプタを追加します。追加アイコン(+)をクリックし、「オンプレミスのファイアウォール管理センター」をクリックします。

ステップ4：アダプタに名前、IPアドレス、ポート、およびユーザ/パスワードを設定します。

警告：アダプタ接続専用のUIで新しいFMCユーザを作成してください。既存のユーザを使用すると、CSDACまたはオンプレミスのファイアウォール管理センター(FMC)のUIで予期しないログアウトが発生する可能性があります。

注：ユーザロール設定には、「Administrator」、「Access Admin」、または「Network Admin」ロールが必要です。IPアドレスフィールドで、オンプレミスのファイアウォール管理センター(FMC)FQDNを使用します。

ステップ5:オンプレミスのファイアウォールのセキュアなManagement Center(CSMC)のUIを開きます。

ステップ6：ブラウザからHTTPS PEM（チェーン）証明書をダウンロードします。ブラウザに表示されているHTTPSの南京錠、接続の保護、詳細情報、証明書の表示、PEM（チェーン）をクリックします。

これにより、証明書チェーンを含む.pemファイルがダウンロードされます。

注:HTTPS On-Prem Secure Firewall Management Center(WFMC)証明書を収集する手順は、Firefoxブラウザに属しています。別のブラウザを使用している場合は、同様の手順を探します。

ステップ7：ダイナミック属性コネクタを開き、[証明書の取得]と[ファイルから参照…]をクリックします。

ステップ8:.pem証明書をアップロードし、「テスト」をクリックしてテストが成功することを確認します。

警告: Ubuntuマシンで構成されているDNSサーバーがオンプレミスのファイアウォール管理センターFQDNを解決できることを確認してください。解決できない場合、テストが失敗する可能性があります。

ステップ9：保存して、ステータスが「OK」であることを確認します。

注: Office 365の動的属性フィルターは作成できません。

ステップ10：オンプレミスのファイアウォール管理センターのUIで、動的Office 365属性を使用したアクセスコントロールポリシールールの作成を開始します。

確認

Ubuntuでコアサービス、コネクタ、およびアダプタのコンテナステータスを確認します。

root@tac://# docker ps -a

CONTAINER ID IMAGE                                                      COMMAND                CREATED      STATUS      PORTS                  NAMES

44f71f675ff1 public.ecr.aws/e6e4t5f5/muster_fmc_adapter:2.2.0-latest    "./docker-entrypoint…" 12 hours ago Up 12 hours 50070/tcp              muster-adapter-fmc.2.muster

88826cf0742f public.ecr.aws/e6e4t5f5/muster_o365_connector:2.2.0-latest "./docker-entrypoint…" 13 hours ago Up 13 hours 50070/tcp              muster-connector-o365.3.muster

4c2c73d351e2 public.ecr.aws/e6e4t5f5/muster_envoy:2.2.0-latest          "/docker-entrypoint.…" 2 days ago   Up 2 days   0.0.0.0:443->8443/tcp  muster-envoy

67f3afae2165 public.ecr.aws/e6e4t5f5/muster_ui:2.2.0-latest             "/docker-entrypoint.…" 2 days ago   Up 2 days   8080/tcp               muster-ui

722a764c54e9 public.ecr.aws/e6e4t5f5/muster_ui_backend:2.2.0-latest     "./docker-entrypoint…" 2 days ago   Up 2 days   50031/tcp              muster-ui-backend

038654545f30 public.ecr.aws/e6e4t5f5/muster_bee:2.2.0-latest            "/bin/sh -c /app/bee"  2 days ago   Up 2 days   50050/tcp, 50443/tcp   muster-bee

90cfd7e3a28b public.ecr.aws/e6e4t5f5/muster_etcd:2.2.0-latest           "etcd"                 2 days ago   Up 2 days   2379-2380/tcp          muster-etcd

CSDAC UIからコネクタのステータスを確認します。

CSDAC UIからアダプタのステータスを確認します。

ファイアウォール管理センターでOffice 365の動的属性を確認します。

アクセスコントロールポリシールールを作成または編集し、[Dynamic Attributes]をクリックし、[Available Attributes]をクリックして[Dynamic Objects]を選択します。

注: Office 365動的オブジェクトが一覧に表示されない場合、統合に問題がある可能性があります。トラブルシューティングセクションを確認するか、Cisco TACにお問い合わせください。

トラブルシュート

AnsibleでSecure Dynamic Attributes Connector(SDCC)のインストールの問題が発生した場合は、「～/.ansible/collections/ansible_collection/cisco/csdac/logs/」ディレクトリにある「csdac.log」を収集します。

root@tac://# cd ~/.ansible/collections/ansible_collections/cisco/logs/

root@tac:~/.ansible/collections/ansible_collections/cisco/csdac/logs# ls -lth

total 276K

-rw-r--r-- 1 root root 272K sep 14 15:37 csdac.log

インストールの失敗ログはこのファイルにあります。「cat」または「less」のLinuxコマンドを使用してファイルを開くか、障害ログを調べるか、Cisco TACに連絡してこのファイルを提供してください。

「アクセス許可が拒否されました」が原因で、Ansibleのインストールが失敗することがあります。csdac.logファイルを調べて、「permission denied」ログを探します。

TASK [cisco.csdac.csdac : print result of csdac command line start command (stderr)] ***

ok: [localhost] => {

"muster_cli_start_result.stderr_lines": [

"permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post \"http://%2Fvar%2Frun%2Fdocker.sock/v1.24/volumes/create\": dial unix /var/run/docker.sock: connect: permission denied",

"permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post \"http://%2Fvar%2Frun%2Fdocker.sock/v1.24/volumes/create\": dial unix /var/run/docker.sock: connect: permission denied",

"permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post \"http://%2Fvar%2Frun%2Fdocker.sock/v1.24/volumes/create\": dial unix /var/run/docker.sock: connect: permission denied",

"permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post \"http://%2Fvar%2Frun%2Fdocker.sock/v1.24/networks/create\": dial unix /var/run/docker.sock: connect: permission denied",

"docker: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post \"http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/create\": dial unix /var/run/docker.sock: connect: permission denied.",

"See 'docker run --help'.",

"docker: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post \"http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/create\": dial unix /var/run/docker.sock: connect: permission denied."

同様のログが見つかった場合は、Cisco Bug ID CSCwh58312を検討するか、Cisco TACにお問い合わせください。

「docker ps -a」がコンテナのダウンまたは問題発生時のコンテナ再起動を示す場合、コンテナは「docker restart container-id」コマンドで再起動できます。

例：コンテナーID '88826cf0742f'でOffice 365を再起動しています。

root@tac://# docker ps -a

CONTAINER ID IMAGE                                                      COMMAND                 CREATED       STATUS      PORTS     NAMES

44f71f675ff1 public.ecr.aws/e6e4t5f5/muster_fmc_adapter:2.2.0-latest     "./docker-entrypoint…" 12 hours ago  Up 12 hours 50070/tcp muster-adapter-fmc.2.muster

88826cf0742f public.ecr.aws/e6e4t5f5/muster_o365_connector:2.2.0-latest  "./docker-entrypoint…" 13 hours ago  Up 13 hours 50070/tcp muster-connector-o365.3.muster

root@tac://# docker restart 88826cf0742f

root@tac://# docker ps -a

CONTAINER ID IMAGE                                                       COMMAND                CREATED       STATUS       PORTS     NAMES

44f71f675ff1 public.ecr.aws/e6e4t5f5/muster_fmc_adapter:2.2.0-latest     "./docker-entrypoint…" 12 hours ago  Up 12 hours  50070/tcp muster-adapter-fmc.2.muster

88826cf0742f public.ecr.aws/e6e4t5f5/muster_o365_connector:2.2.0-latest  "./docker-entrypoint…" 13 hours ago  Up 2 seconds 50070/tcp muster-connector-o365.3.muster

CSDACとの接続を確認し、オブジェクトがセキュアファイアウォール管理センターで作成されているかどうかを検証します。

> expert

sudoadmin@firepower:~$ sudo su -

Password:

root@firepower:/Volume/home/admin# cat /var/opt/CSCOpx/MDC/log/operation/usmsharedsvcs.log

17-Sep-2023 17:24:58.046,[INFO],(DefenseCenterServiceImpl.java:1462)

com.cisco.nm.vms.api.dc.DefenseCenterServiceImpl, ajp-nio-127.0.0.1-9009-exec-2

** REST Request [ CSM ]

** ID : ff3e6259-2417-48cc-8e5e-a41d0bd04b39

** URL: POST /audit

{

"version":"7.2.5",

"requestId":"ff3e6259-2417-48cc-8e5e-a41d0bd04b39",

"data":{

"userName":"TAC",

"subsystem":"API",

"message":"POST https://FMC-FQDN/api/fmc_config/v1/domain/e276abec-e0f2-11e3-8169-6d9ed49b625f

/object/bulkdynamicobjects Created (201) - The request has been fulfilled and resulted in a new resource being created",

"sourceIP":"172.16.1.53",

"domainUuid":"e276abec-e0f2-11e3-8169-6d9ed49b625f",

"time":"1694971497660"},"deleteList":[]

}

関連情報

Cisco Secure Dynamic Attributes(CSDAC)に関連するその他のドキュメントについては、次のサイトを参照してください。

Ciscoダイナミック属性コネクタについて

https://www.cisco.com/c/en/us/td/docs/security/secure-firewall/integrations/dynamic-attributes-connector/220/cisco-secure-dynamic-attributes-connector-v220/m_about-the-cisco-dynamic-attributes-connector_21.html

Cisco Secureダイナミック属性コネクタのインストールとアップグレード

https://www.cisco.com/c/en/us/td/docs/security/secure-firewall/integrations/dynamic-attributes-connector/220/cisco-secure-dynamic-attributes-connector-v220/install-the-cisco-secure-dynamic-attributes-connector.html

Ciscoダイナミック属性コネクタの設定

https://www.cisco.com/c/en/us/td/docs/security/secure-firewall/integrations/dynamic-attributes-connector/220/cisco-secure-dynamic-attributes-connector-v220/configure-the-cisco-secure-dynamic-attributes-collector.html

アクセスコントロールポリシーでのダイナミックオブジェクトの使用

https://www.cisco.com/c/en/us/td/docs/security/secure-firewall/integrations/dynamic-attributes-connector/220/cisco-secure-dynamic-attributes-connector-v220/use-dynamic-objects-in-access-control-rules.html

ダイナミック属性コネクタのトラブルシューティング

https://www.cisco.com/c/en/us/td/docs/security/secure-firewall/integrations/dynamic-attributes-connector/220/cisco-secure-dynamic-attributes-connector-v220/troubleshoot-the-dynamic-attributes-connector.html

CSDAC 2.2のインストールがUbuntu 20.04で「Permission denied with Docker daemon socket」に失敗しました。

Cisco Bug ID CSCwh58312。