المحتويات

المقدمة

المتطلبات الأساسية

المتطلبات

المكونات المستخدمة

معلومات أساسية

التكوين

الرسم التخطيطي للشبكة

التكوينات

التحقق من الصحة

استكشاف الأخطاء وإصلاحها

معلومات ذات صلة

المقدمة

يوضح هذا المستند خطوات أتمتة تسجيل "الدفاع عن تهديد نظام التشغيل FirePOWER (FTD)" إلى مركز إدارة FirePOWER (FMC) باستخدام جهاز غير قابل للتعديل.

المتطلبات الأساسية

المتطلبات

توصي Cisco بأن تكون لديك معرفة بالمواضيع التالية:

- غير قابل

- خادم Ubuntu

- مركز إدارة FireSIGHT (FMC) الظاهري من Cisco

- الدفاع الظاهري ضد التهديد الناري (FTD) من Cisco

وفي سياق هذا الوضع المختبري، يتم نشر Ansible في أوبونتو.

من الضروري التأكد من أن Ansible قد تم تثبيتها بنجاح على أي نظام أساسي مدعوم من قبل Ansible لتشغيل الأوامر المنطقية المشار إليها في هذه المقالة.

المكونات المستخدمة

تستند المعلومات الواردة في هذا المستند إلى إصدارات البرامج والمكونات المادية التالية:

- Ubuntu Server، الإصدار 22.04

- Ansible 2.10.8

- بايثون 3٫10

- Cisco Firepower Threat Defense Virtual 7.4.1

- Cisco Firepower Management Center Virtual 7.4.1

تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك قيد التشغيل، فتأكد من فهمك للتأثير المحتمل لأي أمر.

معلومات أساسية

Ansible عبارة عن أداة متعددة الاستخدامات بدرجة كبيرة، مما يظهر فعالية كبيرة في إدارة أجهزة الشبكة. يمكن إستخدام العديد من المنهجيات لتشغيل المهام المؤتمتة باستخدام برنامج Ansible. وتستخدم الطريقة المستخدمة في هذه المادة كمرجع لأغراض الاختبار.

في هذا المثال، بعد الانضمام بنجاح إلى برنامج FTD الظاهري، يكون مع الترخيص الأساسي والوضع الموجه وطبقة الميزات FTDv30 ونهج التحكم في الوصول الذي يكون مع إجراء السماح الافتراضي مع إرسال السجل الذي تم تمكينه إلى FMC.

التكوين

الرسم التخطيطي للشبكة

المخطط

التكوينات

نظرا لأن Cisco لا تدعم البرامج النصية للأمثلة أو البرامج النصية المكتوبة من قبل العميل، فلدينا بعض الأمثلة التي يمكنك إختبارها وفقا لاحتياجاتك.

ومن الضروري ضمان إنجاز التحقق الأولي على النحو الواجب.

- يتميز الخادم غير القابل للتوصيل بإمكانية الاتصال بالإنترنت.

- يتميز الخادم القابل للتشغيل بإمكانية الاتصال بنجاح بمنفذ واجهة المستخدم الرسومية (GUI) ل FMC (المنفذ الافتراضي لواجهة المستخدم الرسومية (GUI) ل FMC هو 443).

- يتم تكوين FTD باستخدام عنوان IP للمدير الصحيح ومفتاح التسجيل ومعرف nat.

- يتم تمكين FMC مع الترخيص الذكي بنجاح.

الخطوة 1. قم بالاتصال بواجهة سطر الأوامر (CLI) الخاصة بالخادم الافتراضي عبر بروتوكول SSH أو وحدة التحكم.

الخطوة 2. قم بتشغيل الأمرansible-galaxy collection install cisco.fmcansible من أجل تثبيت مجموعة غير معقولة من FMC على الخادم غير القابل للتشغيل.

cisco@inserthostname-here:~$ ansible-galaxy collection install cisco.fmcansible

الخطوة 3. قم بتشغيل الأمر mkdir /home/cisco/fmc_ansibleلإنشاء مجلد جديد لتخزين الملفات ذات الصلة. في هذا المثال، الدليل الرئيسي هو /home/cisco/، اسم المجلد الجديد هو fmc_ansible.

cisco@inserthostname-here:~$ mkdir /home/cisco/fmc_ansible

الخطوة 4. انتقل إلى المجلد /home/cisco/fmc_ansible، وقم بإنشاء ملف مخزون. في هذا المثال، اسم ملف المخزون هو inventory.ini.

cisco@inserthostname-here:~$ cd /home/cisco/fmc_ansible/

ccisco@inserthostname-here:~/fmc_ansible$ ls

inventory.ini

يمكنك مضاعفة المحتوى التالي ولصقه للاستخدام، تعديل المقاطع المبرزة بالمحددات الدقيقة.

[fmc]

10.0.5.11

[fmc:vars]

ansible_user=cisco

ansible_password=cisco

ansible_httpapi_port=443

ansible_httpapi_use_ssl=True

ansible_httpapi_validate_certs=False

network_type=HOST

ansible_network_os=cisco.fmcansible.fmc

الخطوة 5. انتقل إلى المجلد /home/cisco/fmc_ansible، وقم بإنشاء ملف متغير. في هذا المثال، اسم الملف المتغير هو fmc-onboard-ftd-vars.yml.

cisco@inserthostname-here:~$ cd /home/cisco/fmc_ansible/

ccisco@inserthostname-here:~/fmc_ansible$ ls

fmc-onboard-ftd-vars.yml  inventory.ini

يمكنك مضاعفة المحتوى التالي ولصقه للاستخدام، تعديل المقاطع المبرزة بالمحددات الدقيقة.

user:

domain: 'Global'

onboard:

acp_name: 'TEMPACP'

device_name:

ftd1: 'FTDA'

ftd1_reg_key: 'cisco'

ftd1_nat_id: 'natcisco'

mgmt:

ftd1: '10.0.5.12'

الخطوة 6.انتقل إلى المجلد /home/cisco/fmc_ansible، قم بإنشاء ملف كتاب التشغيل. في هذا المثال، اسم ملف دفتر التشغيل هو fmc-onboard-ftd-playbook.yaml.

cisco@inserthostname-here:~$ cd /home/cisco/fmc_ansible/

ccisco@inserthostname-here:~/fmc_ansible$ ls

fmc-onboard-ftd-playbook.yaml fmc-onboard-ftd-vars.yml inventory.ini

يمكنك مضاعفة المحتوى التالي ولصقه للاستخدام، تعديل المقاطع المبرزة بالمحددات الدقيقة.

---

- name: FMC Onboard FTD

hosts: fmc

connection: httpapi

tasks:

- name: Task01 - Get User Domain

cisco.fmcansible.fmc_configuration:

operation: getAllDomain

filters:

name: "{{ user.domain }}"

register_as: domain

- name: Task02 - Create ACP TEMP_ACP

cisco.fmcansible.fmc_configuration:

operation: "createAccessPolicy"

data:

type: "AccessPolicy"

name: "{{accesspolicy_name | default(onboard.acp_name) }}"

defaultAction: {

'action': 'PERMIT',

'logEnd': True,

'logBegin': False,

'sendEventsToFMC': True

}

path_params:

domainUUID: "{{ domain[0].uuid }}"

- name: Task03 - Get Access Policy

cisco.fmcansible.fmc_configuration:

operation: getAllAccessPolicy

path_params:

domainUUID: "{{ domain[0].uuid }}"

filters:

name: "{{ onboard.acp_name }}"

register_as: access_policy

- name: Task04 - Add New FTD1

cisco.fmcansible.fmc_configuration:

operation: createMultipleDevice

data:

hostName: "{{ ftd_ip | default(item.key) }}"

license_caps:

- 'BASE'

ftdMode: 'ROUTED'

type: Device

regKey: "{{ reg_key | default(device_name.ftd1_reg_key) }}"

performanceTier: "FTDv30"

name: "{{ ftd_name | default(item.value) }}"

accessPolicy:

id: '{{ access_policy[0].id }}'

type: 'AccessPolicy'

natID: "{{ nat_id | default(device_name.ftd1_nat_id) }}"

path_params:

domainUUID: '{{ domain[0].uuid }}'

loop: "{{ ftd_ip_name | dict2items }}"

vars:

ftd_ip_name:

"{{mgmt.ftd1}}": "{{device_name.ftd1}}"

- name: Task05 - Wait For FTD Registration Completion

ansible.builtin.wait_for:

timeout: 120

delegate_to: localhost

- name: Task06 - Confirm FTD Init Deploy Complete

cisco.fmcansible.fmc_configuration:

operation: getAllDevice

path_params:

domainUUID: '{{ domain[0].uuid }}'

query_params:

expanded: true

filters:

name: "{{ device_name.ftd1 }}"

register_as: device_list

until: device_list[0].deploymentStatus is match("DEPLOYED")

retries: 1000

delay: 3

ملاحظة: تخدم الأسماء المبرزة في هذا المثال كمتغيرات. يتم الحفاظ على القيم المرادفة لهذه المتغيرات ضمن ملف المتغير.

الخطوة 7. انتقل إلى المجلد /home/cisco/fmc_ansible، قم بتشغيل الأمر ansible-playbook -i <inventory_name>.ini  <playbook_name>.yaml  -e@"<playbook_vars>.yml"  لتشغيل المهمة غير المحتملة. في هذا المثال، الأمر هو ansible-playbook -i inventory.ini fmc-onboard-ftd-playbook.yaml -e @"fmc-onboard-ftd-vars.yml"  .

cisco@inserthostname-here:~$ cd /home/cisco/fmc_ansible/

cisco@inserthostname-here:~/fmc_ansible$ ls

fmc-onboard-ftd-playbook.yaml fmc-onboard-ftd-vars.yml inventory.ini

cisco@inserthostname-here:~/fmc_ansible$ ansible-playbook -i inventory.ini fmc-onboard-ftd-playbook.yaml -e @"fmc-onboard-ftd-vars.yml"

PLAY [FMC Onboard FTD] *******************************************************************************************************************************************

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

ok: [10.0.5.11]

TASK [Task01 - Get User Domain] **********************************************************************************************************************************

ok: [10.0.5.11]

TASK [Task02 - Create ACP TEMP_ACP] ******************************************************************************************************************************

changed: [10.0.5.11]

TASK [Task03 - Get Access Policy] ********************************************************************************************************************************

ok: [10.0.5.11]

TASK [Task04 - Add New FTD1] *************************************************************************************************************************************

changed: [10.0.5.11] => (item={'key': '10.0.5.12', 'value': 'FTDA'})

TASK [Task05 - Wait For FTD Registration Completion] *************************************************************************************************************

ok: [10.0.5.11]

TASK [Task06 - Confirm FTD Init Deploy Complete] *****************************************************************************************************************

FAILED - RETRYING: Task06 - Confirm FTD Init Deploy Complete (1000 retries left).

FAILED - RETRYING: Task06 - Confirm FTD Init Deploy Complete (999 retries left).

FAILED - RETRYING: Task06 - Confirm FTD Init Deploy Complete (998 retries left).

FAILED - RETRYING: Task06 - Confirm FTD Init Deploy Complete (997 retries left).

FAILED - RETRYING: Task06 - Confirm FTD Init Deploy Complete (996 retries left).

ok: [10.0.5.11]

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

10.0.5.11 : ok=7 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

التحقق من الصحة

استخدم هذا القسم لتأكيد عمل التكوين بشكل صحيح.

سجل الدخول إلى واجهة المستخدم الرسومية (GUI) لوحدة التحكم FMC. انتقل إلى الأجهزة > إدارة الأجهزة، تم تسجيل FTD بنجاح على FMC باستخدام نهج التحكم في الوصول الذي تم تكوينه.

صفحة إدارة الأجهزة

استكشاف الأخطاء وإصلاحها

يوفر هذا القسم معلومات يمكنك استخدامها لاستكشاف أخطاء التكوين وإصلاحها.

لمشاهدة المزيد من سجلات كتاب التشغيل غير القابل للتشغيل، يمكنك تشغيل كتاب التشغيل غير القابل للتشغيل باستخدام -vvv.

cisco@inserthostname-here:~/fmc_ansible$ ansible-playbook -i inventory.ini fmc-onboard-ftd-playbook.yaml -e @"fmc-onboard-ftd-vars.yml" -vvv

معلومات ذات صلة

Cisco Devnet FMC Ansible