Skip to content

Latest commit

 

History

History
1292 lines (1248 loc) · 58.4 KB

fortios_ips_sensor.rst

File metadata and controls

1292 lines (1248 loc) · 58.4 KB
source:fortios_ips_sensor.py
orphan:

fortios_ips_sensor -- Configure IPS sensor in Fortinet's FortiOS and FortiGate.

.. versionadded:: 2.0.0

  • This module is able to configure a FortiGate or FortiOS (FOS) device by allowing the user to set and modify ips feature and sensor category. Examples include all parameters and values need to be adjusted to datasources before usage. Tested with FOS v6.0.0

The below requirements are needed on the host that executes this module.

  • ansible>=2.14

Using member operation to add an element to an existing object.


Supported Version Ranges
fortios_ips_sensor v6.0.0 -> latest

  • access_token - Token-based authentication. Generated from GUI of Fortigate. type: str required: false
  • enable_log - Enable/Disable logging for task. type: bool required: false default: False
  • vdom - Virtual domain, among those defined previously. A vdom is a virtual instance of the FortiGate that can be configured and used as a different unit. type: str default: root
  • member_path - Member attribute path to operate on. type: str
  • member_state - Add or delete a member under specified attribute path. type: str choices: present, absent
  • state - Indicates whether to create or remove the object. type: str required: true choices: present, absent
  • ips_sensor - Configure IPS sensor. type: dict more...
    Supported Version Ranges
    ips_sensor v6.0.0 -> latest
    • block_malicious_url - Enable/disable malicious URL blocking. type: str choices: disable, enable more...
      Supported Version Ranges
      block_malicious_url v6.0.0 -> latest
      [disable] v6.0.0 -> latest
      [enable] v6.0.0 -> latest
    • comment - Comment. type: str more...
      Supported Version Ranges
      comment v6.0.0 -> latest
    • entries - IPS sensor filter. type: list member_path: entries:id more...
      Supported Version Ranges
      entries v6.0.0 -> latest
      • action - Action taken with traffic in which signatures are detected. type: str choices: pass, block, reset, default more...
        Supported Version Ranges
        action v6.0.0 -> latest
        [pass] v6.0.0 -> latest
        [block] v6.0.0 -> latest
        [reset] v6.0.0 -> latest
        [default] v6.0.0 -> latest
      • application - Operating systems to be protected. Use all for every application and other for unlisted application. type: list
      • cve - List of CVE IDs of the signatures to add to the sensor. type: list member_path: entries:id/cve:cve_entry more...
        Supported Version Ranges
        cve v6.4.0 -> v6.4.0 v6.4.4 -> latest
        • cve_entry - CVE IDs or CVE wildcards. type: str required: true more...
          Supported Version Ranges
          cve_entry v6.4.0 -> v6.4.0 v6.4.4 -> latest
      • default_action - Signature default action filter. type: str choices: all, pass, block more...
        Supported Version Ranges
        default_action v7.2.0 -> latest
        [all] v6.0.0 -> latest
        [pass] v6.0.0 -> latest
        [block] v6.0.0 -> latest
      • default_status - Signature default status filter. type: str choices: all, enable, disable more...
        Supported Version Ranges
        default_status v7.2.0 -> latest
        [all] v6.0.0 -> latest
        [enable] v6.0.0 -> latest
        [disable] v6.0.0 -> latest
      • exempt_ip - Traffic from selected source or destination IP addresses is exempt from this signature. type: list member_path: entries:id/exempt_ip:id more...
        Supported Version Ranges
        exempt_ip v6.0.0 -> latest
        • dst_ip - Destination IP address and netmask (applies to packet matching the signature). type: str more...
          Supported Version Ranges
          dst_ip v6.0.0 -> latest
        • id - Exempt IP ID. see Notes. type: int required: true more...
          Supported Version Ranges
          id v6.0.0 -> latest
        • src_ip - Source IP address and netmask (applies to packet matching the signature). type: str more...
          Supported Version Ranges
          src_ip v6.0.0 -> latest
      • id - Rule ID in IPS database (0 - 4294967295). see Notes. type: int required: true more...
        Supported Version Ranges
        id v6.0.0 -> latest
      • last_modified - Filter by signature last modified date. Formats: before , after , between . type: str more...
        Supported Version Ranges
        last_modified v7.2.0 -> latest
      • location - Protect client or server traffic. type: list
      • log - Enable/disable logging of signatures included in filter. type: str choices: disable, enable more...
        Supported Version Ranges
        log v6.0.0 -> latest
        [disable] v6.0.0 -> latest
        [enable] v6.0.0 -> latest
      • log_attack_context - Enable/disable logging of attack context: URL buffer, header buffer, body buffer, packet buffer. type: str choices: disable, enable more...
        Supported Version Ranges
        log_attack_context v6.0.0 -> latest
        [disable] v6.0.0 -> latest
        [enable] v6.0.0 -> latest
      • log_packet - Enable/disable packet logging. Enable to save the packet that triggers the filter. You can download the packets in pcap format for diagnostic use. type: str choices: disable, enable more...
        Supported Version Ranges
        log_packet v6.0.0 -> latest
        [disable] v6.0.0 -> latest
        [enable] v6.0.0 -> latest
      • os - Operating systems to be protected. Use all for every operating system and other for unlisted operating systems. type: list
      • protocol - Protocols to be examined. Use all for every protocol and other for unlisted protocols. type: list
      • quarantine - Quarantine method. type: str choices: none, attacker more...
        Supported Version Ranges
        quarantine v6.0.0 -> latest
        [none] v6.0.0 -> latest
        [attacker] v6.0.0 -> latest
      • quarantine_expiry - Duration of quarantine. (Format type: str more...
        Supported Version Ranges
        quarantine_expiry v6.0.0 -> latest
      • quarantine_log - Enable/disable quarantine logging. type: str choices: disable, enable more...
        Supported Version Ranges
        quarantine_log v6.0.0 -> latest
        [disable] v6.0.0 -> latest
        [enable] v6.0.0 -> latest
      • rate_count - Count of the rate. type: int more...
        Supported Version Ranges
        rate_count v6.0.0 -> latest
      • rate_duration - Duration (sec) of the rate. type: int more...
        Supported Version Ranges
        rate_duration v6.0.0 -> latest
      • rate_mode - Rate limit mode. type: str choices: periodical, continuous more...
        Supported Version Ranges
        rate_mode v6.0.0 -> latest
        [periodical] v6.0.0 -> latest
        [continuous] v6.0.0 -> latest
      • rate_track - Track the packet protocol field. type: str choices: none, src-ip, dest-ip, dhcp-client-mac, dns-domain more...
        Supported Version Ranges
        rate_track v6.0.0 -> latest
        [none] v6.0.0 -> latest
        [src-ip] v6.0.0 -> latest
        [dest-ip] v6.0.0 -> latest
        [dhcp-client-mac] v6.0.0 -> latest
        [dns-domain] v6.0.0 -> latest
      • rule - Identifies the predefined or custom IPS signatures to add to the sensor. type: list member_path: entries:id/rule:id more...
        Supported Version Ranges
        rule v6.0.0 -> latest
        • id - Rule IPS. see Notes. type: int required: true more...
          Supported Version Ranges
          id v6.0.0 -> latest
      • severity - Relative severity of the signature, from info to critical. Log messages generated by the signature include the severity. type: list
      • status - Status of the signatures included in filter. Only those filters with a status to enable are used. type: str choices: disable, enable, default more...
        Supported Version Ranges
        status v6.0.0 -> latest
        [disable] v6.0.0 -> latest
        [enable] v6.0.0 -> latest
        [default] v6.0.0 -> latest
      • vuln_type - List of signature vulnerability types to filter by. type: list member_path: entries:id/vuln_type:id more...
        Supported Version Ranges
        vuln_type v7.2.0 -> latest
        • id - Vulnerability type ID. see Notes. type: int required: true more...
          Supported Version Ranges
          id v7.2.0 -> latest
    • extended_log - Enable/disable extended logging. type: str choices: enable, disable more...
      Supported Version Ranges
      extended_log v6.0.0 -> latest
      [enable] v6.0.0 -> latest
      [disable] v6.0.0 -> latest
    • filter - IPS sensor filter. type: list member_path: filter:name more...
      Supported Version Ranges
      filter v6.0.0 -> v6.2.7 v6.4.1 -> v6.4.1
      • action - Action of selected rules. type: str choices: pass, block, reset, default more...
        Supported Version Ranges
        action v6.0.0 -> v6.2.7 v6.4.1 -> v6.4.1
        [pass] v6.0.0 -> latest
        [block] v6.0.0 -> latest
        [reset] v6.0.0 -> latest
        [default] v6.0.0 -> latest
      • application - Vulnerable application filter. type: str more...
        Supported Version Ranges
        application v6.0.0 -> v6.2.7 v6.4.1 -> v6.4.1
      • location - Vulnerability location filter. type: str more...
        Supported Version Ranges
        location v6.0.0 -> v6.2.7 v6.4.1 -> v6.4.1
      • log - Enable/disable logging of selected rules. type: str choices: disable, enable more...
        Supported Version Ranges
        log v6.0.0 -> v6.2.7 v6.4.1 -> v6.4.1
        [disable] v6.0.0 -> latest
        [enable] v6.0.0 -> latest
      • log_packet - Enable/disable packet logging of selected rules. type: str choices: disable, enable more...
        Supported Version Ranges
        log_packet v6.0.0 -> v6.2.7 v6.4.1 -> v6.4.1
        [disable] v6.0.0 -> latest
        [enable] v6.0.0 -> latest
      • name - Filter name. type: str required: true more...
        Supported Version Ranges
        name v6.0.0 -> v6.2.7 v6.4.1 -> v6.4.1
      • os - Vulnerable OS filter. type: str more...
        Supported Version Ranges
        os v6.0.0 -> v6.2.7 v6.4.1 -> v6.4.1
      • protocol - Vulnerable protocol filter. type: str more...
        Supported Version Ranges
        protocol v6.0.0 -> v6.2.7 v6.4.1 -> v6.4.1
      • quarantine - Quarantine IP or interface. type: str choices: none, attacker more...
        Supported Version Ranges
        quarantine v6.0.0 -> v6.2.7 v6.4.1 -> v6.4.1
        [none] v6.0.0 -> latest
        [attacker] v6.0.0 -> latest
      • quarantine_expiry - Duration of quarantine in minute. type: int more...
        Supported Version Ranges
        quarantine_expiry v6.0.0 -> v6.2.7 v6.4.1 -> v6.4.1
      • quarantine_log - Enable/disable logging of selected quarantine. type: str choices: disable, enable more...
        Supported Version Ranges
        quarantine_log v6.0.0 -> v6.2.7 v6.4.1 -> v6.4.1
        [disable] v6.0.0 -> latest
        [enable] v6.0.0 -> latest
      • severity - Vulnerability severity filter. type: str more...
        Supported Version Ranges
        severity v6.0.0 -> v6.2.7 v6.4.1 -> v6.4.1
      • status - Selected rules status. type: str choices: disable, enable, default more...
        Supported Version Ranges
        status v6.0.0 -> v6.2.7 v6.4.1 -> v6.4.1
        [disable] v6.0.0 -> latest
        [enable] v6.0.0 -> latest
        [default] v6.0.0 -> latest
    • name - Sensor name. type: str required: true more...
      Supported Version Ranges
      name v6.0.0 -> latest
    • override - IPS override rule. type: list member_path: override:rule_id more...
      Supported Version Ranges
      override v6.0.0 -> v6.2.7 v6.4.1 -> v6.4.1
      • action - Action of override rule. type: str choices: pass, block, reset more...
        Supported Version Ranges
        action v6.0.0 -> v6.2.7 v6.4.1 -> v6.4.1
        [pass] v6.0.0 -> latest
        [block] v6.0.0 -> latest
        [reset] v6.0.0 -> latest
      • exempt_ip - Exempted IP. type: list member_path: override:rule_id/exempt_ip:id more...
        Supported Version Ranges
        exempt_ip v6.0.0 -> v6.2.7 v6.4.1 -> v6.4.1
        • dst_ip - Destination IP address and netmask. type: str more...
          Supported Version Ranges
          dst_ip v6.0.0 -> v6.2.7 v6.4.1 -> v6.4.1
        • id - Exempt IP ID. see Notes. type: int required: true more...
          Supported Version Ranges
          id v6.0.0 -> v6.2.7 v6.4.1 -> v6.4.1
        • src_ip - Source IP address and netmask. type: str more...
          Supported Version Ranges
          src_ip v6.0.0 -> v6.2.7 v6.4.1 -> v6.4.1
      • log - Enable/disable logging. type: str choices: disable, enable more...
        Supported Version Ranges
        log v6.0.0 -> v6.2.7 v6.4.1 -> v6.4.1
        [disable] v6.0.0 -> latest
        [enable] v6.0.0 -> latest
      • log_packet - Enable/disable packet logging. type: str choices: disable, enable more...
        Supported Version Ranges
        log_packet v6.0.0 -> v6.2.7 v6.4.1 -> v6.4.1
        [disable] v6.0.0 -> latest
        [enable] v6.0.0 -> latest
      • quarantine - Quarantine IP or interface. type: str choices: none, attacker more...
        Supported Version Ranges
        quarantine v6.0.0 -> v6.2.7 v6.4.1 -> v6.4.1
        [none] v6.0.0 -> latest
        [attacker] v6.0.0 -> latest
      • quarantine_expiry - Duration of quarantine in minute. type: int more...
        Supported Version Ranges
        quarantine_expiry v6.0.0 -> v6.2.7 v6.4.1 -> v6.4.1
      • quarantine_log - Enable/disable logging of selected quarantine. type: str choices: disable, enable more...
        Supported Version Ranges
        quarantine_log v6.0.0 -> v6.2.7 v6.4.1 -> v6.4.1
        [disable] v6.0.0 -> latest
        [enable] v6.0.0 -> latest
      • rule_id - Override rule ID. see Notes. type: int required: true more...
        Supported Version Ranges
        rule_id v6.0.0 -> v6.2.7 v6.4.1 -> v6.4.1
      • status - Enable/disable status of override rule. type: str choices: disable, enable more...
        Supported Version Ranges
        status v6.0.0 -> v6.2.7 v6.4.1 -> v6.4.1
        [disable] v6.0.0 -> latest
        [enable] v6.0.0 -> latest
    • replacemsg_group - Replacement message group. Source system.replacemsg-group.name. type: str more...
      Supported Version Ranges
      replacemsg_group v6.0.0 -> latest
    • scan_botnet_connections - Block or monitor connections to Botnet servers, or disable Botnet scanning. type: str choices: disable, block, monitor more...
      Supported Version Ranges
      scan_botnet_connections v6.2.0 -> latest
      [disable] v6.0.0 -> latest
      [block] v6.0.0 -> latest
      [monitor] v6.0.0 -> latest

Note

  • Legacy fortiosapi has been deprecated, httpapi is the preferred way to run playbooks
- name: Configure IPS sensor.
  fortinet.fortios.fortios_ips_sensor:
      vdom: "{{ vdom }}"
      state: "present"
      access_token: "<your_own_value>"
      ips_sensor:
          block_malicious_url: "disable"
          comment: "Comment."
          entries:
              -
                  action: "pass"
                  application: "<your_own_value>"
                  cve:
                      -
                          cve_entry: "<your_own_value>"
                  default_action: "all"
                  default_status: "all"
                  exempt_ip:
                      -
                          dst_ip: "<your_own_value>"
                          id: "14"
                          src_ip: "<your_own_value>"
                  id: "16"
                  last_modified: "<your_own_value>"
                  location: "<your_own_value>"
                  log: "disable"
                  log_attack_context: "disable"
                  log_packet: "disable"
                  os: "<your_own_value>"
                  protocol: "<your_own_value>"
                  quarantine: "none"
                  quarantine_expiry: "<your_own_value>"
                  quarantine_log: "disable"
                  rate_count: "0"
                  rate_duration: "60"
                  rate_mode: "periodical"
                  rate_track: "none"
                  rule:
                      -
                          id: "32"
                  severity: "<your_own_value>"
                  status: "disable"
                  vuln_type:
                      -
                          id: "36"
          extended_log: "enable"
          filter:
              -
                  action: "pass"
                  application: "<your_own_value>"
                  location: "<your_own_value>"
                  log: "disable"
                  log_packet: "disable"
                  name: "default_name_44"
                  os: "<your_own_value>"
                  protocol: "<your_own_value>"
                  quarantine: "none"
                  quarantine_expiry: "1073741823"
                  quarantine_log: "disable"
                  severity: "<your_own_value>"
                  status: "disable"
          name: "default_name_52"
          override:
              -
                  action: "pass"
                  exempt_ip:
                      -
                          dst_ip: "<your_own_value>"
                          id: "57"
                          src_ip: "<your_own_value>"
                  log: "disable"
                  log_packet: "disable"
                  quarantine: "none"
                  quarantine_expiry: "1073741823"
                  quarantine_log: "disable"
                  rule_id: "<you_own_value>"
                  status: "disable"
          replacemsg_group: "<your_own_value> (source system.replacemsg-group.name)"
          scan_botnet_connections: "disable"

Common return values are documented: https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values, the following are the fields unique to this module:

  • build - Build number of the fortigate image returned: always type: str sample: 1547
  • http_method - Last method used to provision the content into FortiGate returned: always type: str sample: PUT
  • http_status - Last result given by FortiGate on last operation applied returned: always type: str sample: 200
  • mkey - Master key (id) used in the last call to FortiGate returned: success type: str sample: id
  • name - Name of the table used to fulfill the request returned: always type: str sample: urlfilter
  • path - Path of the table used to fulfill the request returned: always type: str sample: webfilter
  • revision - Internal revision number returned: always type: str sample: 17.0.2.10658
  • serial - Serial number of the unit returned: always type: str sample: FGVMEVYYQT3AB5352
  • status - Indication of the operation's result returned: always type: str sample: success
  • vdom - Virtual domain used returned: always type: str sample: root
  • version - Version of the FortiGate returned: always type: str sample: v5.6.3
  • This module is not guaranteed to have a backwards compatible interface.
  • Link Zheng (@chillancezen)
  • Jie Xue (@JieX19)
  • Hongbin Lu (@fgtdev-hblu)
  • Frank Shen (@frankshen01)
  • Miguel Angel Munoz (@mamunozgonzalez)
  • Nicolas Thomas (@thomnico)

Hint

If you notice any issues in this documentation, you can create a pull request to improve it.