PAN-OS EDL Setup Deprecated Hidden

Deprecated. Use PAN-OS EDL Setup v3 playbook instead. Configures an external dynamic list in PAN-OS.\nIn the event that the file exists on the web server, it will sync it to demisto. Then it will create an EDL object and a matching rule.

Deprecated Content (Deprecated) · 16 tasks · 12 inputs · 0 outputs

Details

IDPAN-OS EDL Setup
From Version5.0.0
Tasks16

README

DEPRECATED. Use “PAN-OS EDL Setup v3” playbook instead. Configures an external dynamic list in PAN-OS.
In the event that the file exists on the web server, it will sync it to Cortex XSOAR. Then it will create an EDL object and a matching rule.

Dependencies

This playbook uses the following sub-playbooks, integrations, and scripts.

Sub-playbooks

  • PAN-OS-Commit-Configuration
  • PAN-OS - Create Or Edit Rule

Integrations

This playbook does not use any integrations.

Scripts

  • AreValuesEqual

Commands

  • panorama-create-edl
  • pan-os-edl-update-from-external-file
  • pan-os-edl-update
  • pan-os-edl-get-external-file-metadata

Playbook Inputs


Name Description Required
list-name The name of the list that will store the IOCs. The name of the file on the web server. This file name is the same as the name of the list with the extension “.txt” added. Required
ioc-type The type of the IOCs that the list will store. Can be “ip”, “url”, or “domain”. Required
action-type The action that will be defined in the rule. Can be, “allow”, “deny”, or “drop”. Required
auto-commit Whether to commit the configuration automatically. Optional
log-forwarding-object-name The server address to which to forward logs. Optional
web-server-ip The IP address of the web server on which the files are stored. The web server IP address is configured in the integration instance. Required
pre-post-rulebase Either pre-rulebase or post-rulebase, according to the rule structure. Required
rule-position The position of the rule in the ruleset. Can be, “Top”, “Bottom”, “Before” or “After”. The default position is “Top”. Optional
relative-rule-name If the rule-position that is chosen is before or after, specify the rule name to which it is related. Optional
inbound-or-outbound-rule Determines if the rule is inbound or outbound. Optional
rule-name The name of the rule to update, or the name of the rule that will be created. Optional
device-group The device group to work on. Exists only in panorama! Optional

Playbook Outputs


There are no outputs for this playbook.

Playbook Image


PAN-OS_EDL_Setup

Inputs

  • list-name — The name of the list that will store the IOCs. The name of the file on the web server. This file name is the same as the name of the list with the extension ".txt" added.
  • ioc-type — The type of the IOCs that the list will store. Can be "ip", "url", or "domain".
  • action-type — The action that will be defined in the rule: allow/deny/drop
  • auto-commit — Whether to commit the configuration automatically.
  • log-forwarding-object-name — The server address to which to forward logs.
  • web-server-ip — The IP address of the web server on which the files are stored. The web server IP address is configured in the integration instance.
  • pre-post-rulebase — Either pre-rulebase or post-rulebase, according to the rule structure.
  • rule-position — The position of the rule in the ruleset. Valid values are: * Top * Bottom * Before * After The default position is 'Top'
  • relative-rule-name — If the rule-position that is chosen is before or after, specify the rule name to which it is related.
  • inbound-or-outbound-rule — Determines if the rule is inbound or outbound.
  • rule-name — The name of the rule to update, or the name of the rule that will be created.
  • device-group — The device group to work on. Exists only in panorama!

Commands used

pan-os-edl-get-external-file-metadata pan-os-edl-update pan-os-edl-update-from-external-file panorama-create-edl

Flowchart

yes yes yes no yes Start Start Is PAN-OS integration enabled? Is PAN-OS integration ena... Is PAN-OS EDL Management integration enabled? Is PAN-OS EDL Management ... Done Done Retrieve external file - pan-os-edl-get-external-file-metadata Retrieve external file pan-os-edl-get-external-file-... Add changes from external file to the internal list - pan-os-edl-update-from-external-file Add changes from external... pan-os-edl-update-from-extern... Create internal list and external file - pan-os-edl-update Create internal list and ... pan-os-edl-update Is there an external file? Is there an external file? Create EDL Object - panorama-create-edl Create EDL Object panorama-create-edl PAN-OS-Commit-Configuration - PAN-OS Commit Configuration PAN-OS-Commit-Configuration PAN-OS Commit Configuration PAN-OS-Commit-Configuration - PAN-OS Commit Configuration PAN-OS-Commit-Configuration PAN-OS Commit Configuration Is auto-commit defined? - AreValuesEqual Is auto-commit defined? AreValuesEqual Manually commit Manually commit Manually commit Manually commit PAN-OS - Create Or Edit Rule - PAN-OS - Create Or Edit Rule PAN-OS - Create Or Edit Rule PAN-OS - Create Or Edit Rule PAN-OS - Create Or Edit Rule - PAN-OS - Create Or Edit Rule PAN-OS - Create Or Edit Rule PAN-OS - Create Or Edit Rule
id: PAN-OS EDL Setup
version: -1
name: PAN-OS EDL Setup
fromversion: 5.0.0
description: Deprecated. Use PAN-OS EDL Setup v3 playbook instead. Configures an external dynamic list in PAN-OS.\nIn the event that the file exists on the web server, it will sync it to demisto. Then it will create an EDL object and a matching rule.
starttaskid: "0"
hidden: true
tasks:
  "0":
    id: "0"
    taskid: 54a20b97-8d74-433e-8d85-654a352c47e6
    type: start
    task:
      id: 54a20b97-8d74-433e-8d85-654a352c47e6
      version: -1
      name: ""
      description: ""
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "1"
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 180,
          "y": 130
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "1":
    id: "1"
    taskid: 904419e9-26ca-4791-8741-8ed17916a846
    type: condition
    task:
      id: 904419e9-26ca-4791-8741-8ed17916a846
      version: -1
      name: Is PAN-OS integration enabled?
      description: Checks if there is an active instance of the PAN-OS integration enabled.
      type: condition
      iscommand: false
      brand: ""
    nexttasks:
      '#default#':
      - "3"
      "yes":
      - "2"
    separatecontext: false
    conditions:
    - label: "yes"
      condition:
      - - operator: isExists
          left:
            value:
              complex:
                root: modules
                filters:
                - - operator: isEqualString
                    left:
                      value:
                        simple: modules.brand
                      iscontext: true
                    right:
                      value:
                        simple: Panorama
                - - operator: isEqualString
                    left:
                      value:
                        simple: modules.state
                      iscontext: true
                    right:
                      value:
                        simple: active
                accessor: brand
            iscontext: true
    view: |-
      {
        "position": {
          "x": 180,
          "y": 270
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "2":
    id: "2"
    taskid: 12ab144d-d89e-4f6c-80e7-81ea70b1aa22
    type: condition
    task:
      id: 12ab144d-d89e-4f6c-80e7-81ea70b1aa22
      version: -1
      name: Is PAN-OS EDL Management integration enabled?
      description: Checks if there is an active instance of the PAN-OS EDL Management integration enabled.
      type: condition
      iscommand: false
      brand: ""
    nexttasks:
      '#default#':
      - "3"
      "yes":
      - "7"
    separatecontext: false
    conditions:
    - label: "yes"
      condition:
      - - operator: isExists
          left:
            value:
              complex:
                root: modules
                filters:
                - - operator: isEqualString
                    left:
                      value:
                        simple: modules.brand
                      iscontext: true
                    right:
                      value:
                        simple: palo_alto_networks_pan_os_edl_management
                - - operator: isEqualString
                    left:
                      value:
                        simple: modules.state
                      iscontext: true
                    right:
                      value:
                        simple: active
                accessor: brand
            iscontext: true
    view: |-
      {
        "position": {
          "x": 480,
          "y": 440
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "3":
    id: "3"
    taskid: 8fd903d2-aad6-4dce-8432-41ad2f7b1fd1
    type: title
    task:
      id: 8fd903d2-aad6-4dce-8432-41ad2f7b1fd1
      version: -1
      name: Done
      description: ""
      type: title
      iscommand: false
      brand: ""
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 180,
          "y": 1980
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "7":
    id: "7"
    taskid: 8342cc60-a6ef-40a8-8ced-a42f45242392
    type: regular
    task:
      id: 8342cc60-a6ef-40a8-8ced-a42f45242392
      version: -1
      name: Retrieve external file
      description: Extracts metadata for the external file from the web server.
      script: '|||pan-os-edl-get-external-file-metadata'
      type: regular
      iscommand: true
      brand: ""
    nexttasks:
      '#none#':
      - "18"
    scriptarguments:
      file_path:
        complex:
          root: inputs.list-name
          transformers:
          - operator: concat
            args:
              prefix: {}
              suffix:
                value:
                  simple: .txt
    continueonerror: true
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 710,
          "y": 610
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "16":
    id: "16"
    taskid: 266ca860-4e19-4b80-891c-135f004eee4c
    type: regular
    task:
      id: 266ca860-4e19-4b80-891c-135f004eee4c
      version: -1
      name: Add changes from external file to the internal list
      description: Fetches the content of the external file and merges it with the content of the internal list.
      script: '|||pan-os-edl-update-from-external-file'
      type: regular
      iscommand: true
      brand: ""
    nexttasks:
      '#none#':
      - "3"
    scriptarguments:
      file_path:
        simple: ${inputs.list-name}.txt
      list_name:
        simple: ${inputs.list-name}
      type:
        simple: merge
      verbose: {}
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 480,
          "y": 960
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "17":
    id: "17"
    taskid: 7a865cba-6eef-4ca1-8a21-00b8ef3f8320
    type: regular
    task:
      id: 7a865cba-6eef-4ca1-8a21-00b8ef3f8320
      version: -1
      name: Create internal list and external file
      description: Creates an internal list in Demisto and creates an external file on the web server.
      script: '|||pan-os-edl-update'
      type: regular
      iscommand: true
      brand: ""
    nexttasks:
      '#none#':
      - "19"
    scriptarguments:
      add_or_remove:
        simple: add
      file_path:
        simple: ${inputs.list-name}.txt
      list_items:
        simple: .
      list_name:
        simple: ${inputs.list-name}
      verbose: {}
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 950,
          "y": 960
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "18":
    id: "18"
    taskid: c41aaffd-a288-4eaa-8afb-d7d2df2250ec
    type: condition
    task:
      id: c41aaffd-a288-4eaa-8afb-d7d2df2250ec
      version: -1
      name: Is there an external file?
      description: Checks if an external file exists on the web server.
      type: condition
      iscommand: false
      brand: ""
    nexttasks:
      '#default#':
      - "17"
      "yes":
      - "16"
    separatecontext: false
    conditions:
    - label: "yes"
      condition:
      - - operator: containsGeneral
          left:
            value:
              simple: PANOSEDL.FileName
            iscontext: true
          right:
            value:
              complex:
                root: inputs.list-name
                transformers:
                - operator: concat
                  args:
                    prefix: {}
                    suffix:
                      value:
                        simple: .txt
            iscontext: true
    view: |-
      {
        "position": {
          "x": 710,
          "y": 790
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "19":
    id: "19"
    taskid: b03a2267-9026-47d9-8a11-c14b7c282713
    type: regular
    task:
      id: b03a2267-9026-47d9-8a11-c14b7c282713
      version: -1
      name: Create EDL Object
      description: Creates an external dynamic list in PAN-OS and connects it to the external file.
      script: '|||panorama-create-edl'
      type: regular
      iscommand: true
      brand: ""
    nexttasks:
      '#none#':
      - "23"
    scriptarguments:
      certificate_profile: {}
      description: {}
      name:
        simple: ${inputs.list-name}-${inputs.ioc-type}-edl-object
      recurring:
        simple: five-minute
      type:
        simple: ${inputs.ioc-type}
      url:
        simple: http://${inputs.web-server-ip}/files/${inputs.list-name}.txt
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 950,
          "y": 1130
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "20":
    id: "20"
    taskid: 2eefa1ba-e662-4fd2-8327-435b99c7d466
    type: playbook
    task:
      id: 2eefa1ba-e662-4fd2-8327-435b99c7d466
      version: -1
      name: PAN-OS-Commit-Configuration
      description: ""
      playbookName: PAN-OS Commit Configuration
      type: playbook
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "33"
    separatecontext: true
    view: |-
      {
        "position": {
          "x": 740,
          "y": 1480
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "22":
    id: "22"
    taskid: 4adc4ddf-8cbc-4665-8a3d-562f55c364e9
    type: playbook
    task:
      id: 4adc4ddf-8cbc-4665-8a3d-562f55c364e9
      version: -1
      name: PAN-OS-Commit-Configuration
      description: ""
      playbookName: PAN-OS Commit Configuration
      type: playbook
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "3"
    separatecontext: true
    view: |-
      {
        "position": {
          "x": 740,
          "y": 1810
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "23":
    id: "23"
    taskid: f0191f59-4221-4f88-8811-a8cc196f4971
    type: condition
    task:
      id: f0191f59-4221-4f88-8811-a8cc196f4971
      version: -1
      name: Is auto-commit defined?
      description: Checks if the values provided in the arguments are equal. If either of the arguments are missing, "no" is returned.
      scriptName: AreValuesEqual
      type: condition
      iscommand: false
      brand: ""
    nexttasks:
      "no":
      - "24"
      "yes":
      - "20"
    scriptarguments:
      left:
        simple: ${inputs.auto-commit}
      right:
        simple: "Yes"
    results:
    - AreValuesEqual
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 950,
          "y": 1300
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "24":
    id: "24"
    taskid: fecf981d-2339-4dd6-880a-0af64002c524
    type: regular
    task:
      id: fecf981d-2339-4dd6-880a-0af64002c524
      version: -1
      name: Manually commit
      description: Allows the analyst to manually commit the changes. This option is available when auto-commit is "false".
      type: regular
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "34"
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 1160,
          "y": 1480
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "27":
    id: "27"
    taskid: c6cb98f4-5335-4271-860c-677955525d7f
    type: regular
    task:
      id: c6cb98f4-5335-4271-860c-677955525d7f
      version: -1
      name: Manually commit
      description: Allows the analyst to manually commit the changes. This option is available when auto-commit is "false".
      type: regular
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "3"
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 1160,
          "y": 1810
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "33":
    id: "33"
    taskid: a0cb1649-4257-4a9c-8f81-8fe1296f2920
    type: playbook
    task:
      id: a0cb1649-4257-4a9c-8f81-8fe1296f2920
      version: -1
      name: PAN-OS - Create Or Edit Rule
      description: Creates or edits a Panorama rule and moves it into the desired position.
      playbookName: PAN-OS - Create Or Edit Rule
      type: playbook
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "22"
    scriptarguments:
      action-type:
        complex:
          root: inputs.action-type
      device-group:
        complex:
          root: inputs.device-group
      element-to-add:
        complex:
          root: Panorama
          accessor: EDL.Name
      inbound-or-outbound-rule:
        complex:
          root: inputs.inbound-or-outbound-rule
      log-forwarding-object-name:
        complex:
          root: inputs.log-forwarding-object-name
      pre-post-rulebase:
        complex:
          root: inputs.pre-post-rulebase
      relative-rule-name:
        complex:
          root: inputs.relative-rule-name
      rule-position:
        complex:
          root: inputs.rule-position
          transformers:
          - operator: d8d43bef-f48a-47ad-8502-b191d615158c
            args:
              defaultValue:
                value:
                  simple: top
      rule_name:
        complex:
          root: inputs.rule-name
    separatecontext: true
    loop:
      iscommand: false
      exitCondition: ""
      wait: 1
    view: |-
      {
        "position": {
          "x": 740,
          "y": 1650
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "34":
    id: "34"
    taskid: b8a806b3-8153-4bcc-8a57-3446261f0ed9
    type: playbook
    task:
      id: b8a806b3-8153-4bcc-8a57-3446261f0ed9
      version: -1
      name: PAN-OS - Create Or Edit Rule
      description: Creates or edits a Panorama rule and moves it into the desired position.
      playbookName: PAN-OS - Create Or Edit Rule
      type: playbook
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "27"
    scriptarguments:
      action-type:
        complex:
          root: inputs.action-type
      device-group:
        complex:
          root: inputs.device-group
      element-to-add:
        complex:
          root: Panorama
          accessor: EDL.Name
      inbound-or-outbound-rule:
        complex:
          root: inputs.inbound-or-outbound-rule
      log-forwarding-object-name:
        complex:
          root: inputs.log-forwarding-object-name
      pre-post-rulebase:
        complex:
          root: inputs.pre-post-rulebase
      relative-rule-name:
        complex:
          root: inputs.relative-rule-name
      rule-position:
        complex:
          root: inputs.rule-position
          transformers:
          - operator: d8d43bef-f48a-47ad-8502-b191d615158c
            args:
              defaultValue:
                value:
                  simple: top
      rule_name:
        complex:
          root: inputs.rule-name
    separatecontext: true
    loop:
      iscommand: false
      exitCondition: ""
      wait: 1
    view: |-
      {
        "position": {
          "x": 1160,
          "y": 1650
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
view: |-
  {
    "linkLabelsPosition": {
      "18_16_yes": 0.44,
      "18_17_#default#": 0.39,
      "1_3_#default#": 0.1,
      "23_20_yes": 0.65,
      "23_24_no": 0.59,
      "2_3_#default#": 0.1,
      "2_7_yes": 0.59
    },
    "paper": {
      "dimensions": {
        "height": 1915,
        "width": 1360,
        "x": 180,
        "y": 130
      }
    }
  }
inputs:
- key: list-name
  value: {}
  required: true
  description: |-
    The name of the list that will store the IOCs.
    The name of the file on the web server. This file name is the same as the name of the list with the extension ".txt" added.
- key: ioc-type
  value: {}
  required: true
  description: The type of the IOCs that the list will store. Can be "ip", "url", or "domain".
- key: action-type
  value: {}
  required: true
  description: |-
    The action that will be defined in the rule:
    allow/deny/drop
- key: auto-commit
  value: {}
  required: false
  description: Whether to commit the configuration automatically.
- key: log-forwarding-object-name
  value: {}
  required: false
  description: The server address to which to forward logs.
- key: web-server-ip
  value: {}
  required: true
  description: The IP address of the web server on which the files are stored. The web server IP address is configured in the integration instance.
- key: pre-post-rulebase
  value: {}
  required: true
  description: Either pre-rulebase or post-rulebase,  according to the rule structure.
- key: rule-position
  value: {}
  required: false
  description: |-
    The position of the rule in the ruleset. Valid values are:
      * Top
      * Bottom
      * Before
      * After

    The default position is 'Top'
- key: relative-rule-name
  value: {}
  required: false
  description: If the rule-position that is chosen is before or after, specify the rule name to which it is related.
- key: inbound-or-outbound-rule
  value: {}
  required: false
  description: Determines if the rule is inbound or outbound.
- key: rule-name
  value: {}
  required: false
  description: The name of the rule to update, or the name of the rule that will be created.
- key: device-group
  value: {}
  required: false
  description: The device group to work on. Exists only in panorama!
outputs: []
tests:
- No test
deprecated: true