目录

简介

先决条件

要求

使用的组件

背景信息

配置

网络图

Ubuntu 20.04上的CSDAC部署

创建Office 365连接器

创建vCenter连接器

验证

故障排除

相关信息

简介

本文档介绍如何为本地FMC上的动态Microsoft 365对象部署和集成CSDAC与Ubuntu 20.04上的Ansible。

先决条件

要求

思科建议您了解以下主题：

- 基本Linux命令。

- 基本Python、Docker和Ansible知识。

- Office 365基础知识。

使用的组件

本文档中的信息基于以下软件和硬件版本：

- 运行7.2.5版本的思科防火墙管理中心虚拟(FMCv) VWware。

- 思科安全动态属性连接器(CSDAC)版本2.2。

- Ubuntu 4vCPU/8GB版本20.04。

- Docker版本24.0.6

- Python 3.8.10。

- 2.12.10。

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您的网络处于活动状态，请确保您了解所有命令的潜在影响。

背景信息

思科安全动态属性(CSDAC)允许从云提供商收集网络和IP地址等数据，并将其发送到思科安全防火墙管理中心，以便在访问控制策略规则中使用。

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主机上部署思科安全动态属性连接。

配置

本部分分为以下部分：

- 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守护程序套接字拒绝权限”而导致安装失败，请考虑思科漏洞ID CSCwh58312或联系思科TAC。

第10步：使用HTTPS协议使用CSDAC IP地址登录到连接器。

注意：初始登录名是用户名“admin”，密码“admin”。首次成功登录后，系统将要求更改密码。

创建Office 365连接器

第1步：登录动态属性连接器。

第2步：点击“连接器”(Connectors)。

第3步：添加Office 365连接器：点击添加图标(+)，然后点击“Office 365”。

第4步：为连接器配置名称、基本API URL、实例名称，以及启用或禁用可选IP。

考虑以下问题：

- Pull Interval的默认值为30秒。

- 基本API URL是检索Office 365信息的URL。请参阅Microsoft文档指南上的Office 365 IP地址和URL Web服务。

第5步：点击“测试”(Test)并确保测试成功，然后保存连接器配置。

第6步：保存并确保状态为“OK”。

创建vCenter连接器

第1步：登录动态属性连接器。

第2步：点击“适配器”。

第3步：添加新适配器：点击添加图标(+)，然后点击“内部防火墙管理中心”(on-prem Firewall Management Center)。

第4步：使用名称、IP地址、端口和用户/密码配置适配器。

警告：在专用于适配器连接的UI上创建新的FMC用户。使用现有用户可能会在CSDAC或内部防火墙管理中心UI上创建意外注销。

注意：用户角色配置必须具有“管理员”(Administrator)、“访问管理员”(Access Admin)或“网络管理员”(Network Admin)角色。在IP地址字段上使用内部防火墙管理中心FQDN。

第5步：打开内部防火墙安全管理中心UI。

第6步：从浏览器下载HTTPS PEM（链）证书：点击浏览器上显示的HTTPS挂锁、安全连接、更多信息、查看证书、PEM（链）。

这会下载具有证书链的.pem文件。

注意：收集HTTPS内部安全防火墙管理中心证书的步骤属于Firefox浏览器。如果使用其他浏览器，请查找类似的步骤。

第7步：打开动态属性连接器，然后点击“获取证书”(Get certificate)和“从文件浏览”(Browse from file...)。

第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动态对象，则集成可能有问题。检查故障排除部分或联系思科TAC。

故障排除

如果Ansible存在Secure Dynamic Attributes Connector安装问题，请收集“~/.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命令打开它，浏览故障日志，或者联系思科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."

如果发现类似的日志，请考虑思科漏洞ID CSCwh58312，或联系思科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":[]

}

相关信息

有关思科安全动态属性(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安全动态属性连接器

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”。

思科漏洞ID CSCwh58312。