f5networks.f5_modules.bigip_firewall_dos_vector 模块 – 在 AFM DoS 配置文件中管理攻击向量配置

注意

此模块是 f5networks.f5_modules 集合 (版本 1.32.1) 的一部分。

如果您使用的是 ansible 包,则可能已经安装了此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用: ansible-galaxy collection install f5networks.f5_modules。您需要其他要求才能使用此模块,请参阅 要求 获取详细信息。

要在 playbook 中使用它,请指定: f5networks.f5_modules.bigip_firewall_dos_vector

f5networks.f5_modules 1.0.0 中的新增功能

概要

  • 管理 AFM(高级防火墙管理器)DoS 配置文件中的攻击向量配置。除了普通的 AFM DoS 配置文件向量外,此模块还可以管理设备配置向量。有关此方法的详细信息,请参见模块文档。

要求

执行此模块的主机需要以下要求。

  • BIG-IP >= v13.0.0

参数

参数

注释

allow_advertisement

布尔值

指定已标识为黑名单的地址是否会宣传到 BGP 路由器。

选项

  • false

  • true

attack_ceiling

字符串

指定此类型数据包的绝对最大允许值。

指定此设置时,此设置会将数据包速率限制为每秒数据包数。

要取消硬限制并允许自动阈值管理所有速率限制,请将其设置为 infinite

attack_floor

字符串

指定每秒数据包数以识别攻击。

这些设置提供了在识别攻击之前允许的绝对最小数据包数。

随着自动检测阈值随着时间的推移根据系统的流量和 CPU 使用情况进行调整,此攻击下限变得不那么重要。

此值不得超过 attack_floor 中的值。

auto_blacklist

布尔值

自动将检测到的不良行为者列入黑名单。

要启用此参数,还必须启用 bad_actor_detection

此参数不受 dns-malformed 向量支持。

此参数不受 qdcount 向量支持。

选项

  • false

  • true

bad_actor_detection

布尔值

如果可用,则表示向量的“不良行为者检测”是启用还是禁用。

必须启用此参数才能启用 auto_blacklist 参数。

此参数不受 dns-malformed 向量支持。

此参数不受 qdcount 向量支持。

选项

  • false

  • true

blacklist_detection_seconds

整数

列入黑名单之前的检测时间(秒)。

blacklist_duration

整数

黑名单持续时间(秒)。

detection_threshold_eps

别名:rate_threshold

字符串

列出系统必须在流量中发现多少个数据包/秒才能检测到此攻击。

detection_threshold_percent

别名:rate_increase

字符串

列出系统必须在流量中检测到的随时间推移的阈值百分比增长,才能检测到此攻击。

tcp-half-open 向量不支持此参数。

mitigation_threshold_eps

别名:rate_limit

字符串

指定系统为向量允许的此类型数据包的最大数量/秒。

一旦流量级别超过速率限制,系统就会丢弃数据包。

name

字符串 / 必需

指定要修改的向量的名称。

与设备一起提供的向量是“硬编码”的,因为向量的列表是系统已知的,用户无法添加新向量。用户只能操作现有向量;所有这些向量默认情况下都是禁用的。

bad-icmp-chksum 时,配置“错误 ICMP 校验和”网络安全向量。

bad-icmp-frame 时,配置“错误 ICMP 帧”网络安全向量。

bad-igmp-frame 时,配置“错误 IGMP 帧”网络安全向量。

bad-ip-opt 时,配置“IP 选项长度非法”网络安全向量。

当配置 bad-ipv6-hop-cnt 时,将配置“IPv6 跳数错误”网络安全向量。

当配置 bad-ipv6-ver 时,将配置“IPv6 版本错误”网络安全向量。

当配置 bad-sctp-chksum 时,将配置“SCTP 校验和错误”网络安全向量。

当配置 bad-tcp-chksum 时,将配置“TCP 校验和错误”网络安全向量。

当配置 bad-tcp-flags-all-clr 时,将配置“TCP 标志 (全部清除) 错误”网络安全向量。

当配置 bad-tcp-flags-all-set 时,将配置“TCP 标志 (全部设置) 错误”网络安全向量。

当配置 bad-ttl-val 时,将配置“IP TTL 值错误”网络安全向量。

当配置 bad-udp-chksum 时,将配置“UDP 校验和错误”网络安全向量。

当配置 bad-udp-hdr 时,将配置“UDP 头错误 (UDP 长度 > IP 长度或 L2 长度)”网络安全向量。

当配置 bad-ver 时,将配置“IP 版本错误”网络安全向量。

当配置 arp-flood 时,将配置“ARP 泛洪”网络安全向量。

当配置 flood 时,将配置“单端点泛洪”网络安全向量。

当配置 igmp-flood 时,将配置“IGMP 泛洪”网络安全向量。

当配置 igmp-frag-flood 时,将配置“IGMP 分片泛洪”网络安全向量。

当配置 ip-bad-src 时,将配置“源地址错误”网络安全向量。

当配置 ip-err-chksum 时,将配置“IP 校验和错误”网络安全向量。

当配置 ip-len-gt-l2-len 时,将配置“IP 长度 > L2 长度”网络安全向量。

当配置 ip-other-frag 时,将配置“IP 分片错误”网络安全向量。

当配置 ip-overlap-frag 时,将配置“IP 分片重叠”网络安全向量。

当配置 ip-short-frag 时,将配置“IP 分片过小”网络安全向量。

当配置 ip-uncommon-proto 时,将配置“IP 协议罕见”网络安全向量。

当配置 ip-unk-prot 时,将配置“IP 协议未知”网络安全向量。

当配置 ipv4-mapped-ipv6 时,将配置“IPv4 映射 IPv6”网络安全向量。

当配置 ipv6-atomic-frag 时,将配置“IPv6 原子分片”网络安全向量。

当配置 ipv6-bad-src 时,将配置“IPv6 地址错误”网络安全向量。

当配置 ipv6-len-gt-l2-len 时,将配置“IPv6 长度 > L2 长度”网络安全向量。

当配置 ipv6-other-frag 时,将配置“IPv6 分片错误”网络安全向量。

当配置 ipv6-overlap-frag 时,将配置“IPv6 分片重叠”网络安全向量。

当配置 ipv6-short-frag 时,将配置“IPv6 分片过小”网络安全向量。

当配置 l2-len-ggt-ip-len 时,将配置“L2 长度 >> IP 长度”网络安全向量。

当配置 l4-ext-hdrs-go-end 时,将配置“无 L4 (扩展报头到达或超过帧的末尾)”网络安全向量。

当配置 land-attack 时,将配置“LAND 攻击”网络安全向量。

当配置 no-l4 时,将配置“无 L4”网络安全向量。

当配置 no-listener-match 时,将配置“无监听器匹配”网络安全向量。

当配置 non-tcp-connection 时,将配置“非 TCP 连接”网络安全向量。

当配置 payload-len-ls-l2-len 时,将配置“有效负载长度 < L2 长度”网络安全向量。

当配置 routing-header-type-0 时,将配置“路由头类型 0”网络安全向量。

当配置 syn-and-fin-set 时,将配置“SYN && FIN 设置”网络安全向量。

当配置 tcp-ack-flood 时,将配置“TCP BADACK 泛洪”网络安全向量。

当配置 tcp-hdr-len-gt-l2-len 时,将配置“TCP 头长度 > L2 长度”网络安全向量。

当配置 tcp-hdr-len-too-short 时,将配置“TCP 头长度过短 (长度 < 5)”网络安全向量。

当配置 hdr-len-gt-l2-len 时,将配置“报头长度 > L2 长度”网络安全向量。

当配置 hdr-len-too-short 时,将配置“报头长度过短”网络安全向量。

当配置 bad-ext-hdr-order 时,将配置“IPv6 扩展报头顺序错误”网络安全向量。

当配置 ext-hdr-too-large 时,将配置“IPv6 扩展报头过大”网络安全向量。

当配置 hop-cnt-low 时,将配置“IPv6 跳数 <= ”网络安全向量。

当配置 host-unreachable 时,将配置“主机不可达”网络安全向量。

当配置 icmp-frag 时,将配置“ICMP 分片”网络安全向量。

当配置 icmp-frame-too-large 时,将配置“ICMP 帧过大”网络安全向量。

当配置 icmpv4-flood 时,将配置“ICMPv4 泛洪”网络安全向量。

当配置 icmpv6-flood 时,将配置“ICMPv6 泛洪”网络安全向量。

当配置 ip-frag-flood 时,将配置“IP 分片泛洪”网络安全向量。

当配置 ip-low-ttl 时,将配置“TTL <= ”网络安全向量。

当配置 ip-opt-frames 时,将配置“IP 选项帧”网络安全向量。

当配置 ipv6-ext-hdr-frames 时,将配置“IPv6 扩展报头帧”网络安全向量。

当配置 ipv6-frag-flood 时,将配置“IPv6 分片泛洪”网络安全向量。

当配置 opt-present-with-illegal-len 时,将配置“存在长度非法选项”网络安全向量。

当配置 sweep 时,将配置“端口扫描”网络安全向量。

当配置 tcp-bad-urg 时,将配置“TCP 标志-URG 错误”网络安全向量。

当配置 tcp-half-open 时,将配置“TCP 半开连接”网络安全向量。

当配置 tcp-opt-overruns-tcp-hdr 时,将配置“TCP 选项超过 TCP 报头”网络安全向量。

当配置 tcp-psh-flood 时,将配置“TCP PUSH 泛洪”网络安全向量。

当配置 tcp-rst-flood 时,将配置“TCP RST 泛洪”网络安全向量。

当配置 tcp-syn-flood 时,将配置“TCP SYN 泛洪”网络安全向量。

当配置 tcp-syn-oversize 时,将配置“TCP SYN 过大”网络安全向量。

当配置 tcp-synack-flood 时,将配置“TCP SYN ACK 泛洪”网络安全向量。

当配置 tcp-window-size 时,将配置“TCP 窗口大小”网络安全向量。

当配置 tidcmp 时,将配置“TIDCMP”网络安全向量。

当配置 too-many-ext-hdrs 时,将配置“扩展报头过多”网络安全向量。

当配置 dup-ext-hdr 时,将配置“IPv6 重复扩展报头”网络安全向量。

当配置 fin-only-set 时,将配置“仅 FIN 设置”网络安全向量。

当配置 ether-brdcst-pkt 时,将配置“以太网广播报文”网络安全向量。

当配置 ether-multicst-pkt 时,将配置“以太网组播报文”网络安全向量。

当配置 ether-mac-sa-eq-da 时,将配置“以太网 MAC 源地址 == 目的地址”网络安全向量。

当配置 udp-flood 时,将配置“UDP 泛洪”网络安全向量。

当配置 unk-ipopt-type 时,将配置“未知选项类型”网络安全向量。

当配置 unk-tcp-opt-type 时,将配置“未知 TCP 选项类型”网络安全向量。

当配置 a 时,将配置“DNS A 查询”DNS 协议安全向量。

当配置 aaaa 时,将配置“DNS AAAA 查询”DNS 协议安全向量。

当配置 any 时,将配置“DNS ANY 查询”DNS 协议安全向量。

当配置 axfr 时,将配置“DNS AXFR 查询”DNS 协议安全向量。

cname 时,配置“DNS CNAME 查询”DNS 协议安全向量。

dns-malformed 时,配置“dns-malformed”DNS 协议安全向量。

dns-nxdomain-query 时,配置“dns-nxdomain-query”DNS 协议安全向量。

dns-response-flood 时,配置“dns-response-flood”DNS 协议安全向量。

dns-oversize 时,配置“dns-oversize”DNS 协议安全向量。

ixfr 时,配置“DNS IXFR 查询”DNS 协议安全向量。

mx 时,配置“DNS MX 查询”DNS 协议安全向量。

ns 时,配置“DNS NS 查询”DNS 协议安全向量。

other 时,配置“DNS 其他查询”DNS 协议安全向量。

ptr 时,配置“DNS PTR 查询”DNS 协议安全向量。

qdcount 时,配置“DNS QDCOUNT 查询”DNS 协议安全向量。

soa 时,配置“DNS SOA 查询”DNS 协议安全向量。

srv 时,配置“DNS SRV 查询”DNS 协议安全向量。

txt 时,配置“DNS TXT 查询”DNS 协议安全向量。

ack 时,配置“SIP ACK 方法”SIP 协议安全向量。

bye 时,配置“SIP BYE 方法”SIP 协议安全向量。

cancel 时,配置“SIP CANCEL 方法”SIP 协议安全向量。

invite 时,配置“SIP INVITE 方法”SIP 协议安全向量。

message 时,配置“SIP MESSAGE 方法”SIP 协议安全向量。

notify 时,配置“SIP NOTIFY 方法”SIP 协议安全向量。

options 时,配置“SIP OPTIONS 方法”SIP 协议安全向量。

other 时,配置“SIP 其他方法”SIP 协议安全向量。

prack 时,配置“SIP PRACK 方法”SIP 协议安全向量。

publish 时,配置“SIP PUBLISH 方法”SIP 协议安全向量。

register 时,配置“SIP REGISTER 方法”SIP 协议安全向量。

sip-malformed 时,配置“sip-malformed”SIP 协议安全向量。

subscribe 时,配置“SIP SUBSCRIBE 方法”SIP 协议安全向量。

uri-limit 时,配置“uri-limit”SIP 协议安全向量。

选项

  • "bad-icmp-chksum"

  • "bad-icmp-frame"

  • "bad-igmp-frame"

  • "bad-ip-opt"

  • "bad-ipv6-hop-cnt"

  • "bad-ipv6-ver"

  • "bad-sctp-chksum"

  • "bad-tcp-chksum"

  • "bad-tcp-flags-all-clr"

  • "bad-tcp-flags-all-set"

  • "bad-ttl-val"

  • "bad-udp-chksum"

  • "bad-udp-hdr"

  • "bad-ver"

  • "arp-flood"

  • "flood"

  • "igmp-flood"

  • "igmp-frag-flood"

  • "ip-bad-src"

  • "ip-err-chksum"

  • "ip-len-gt-l2-len"

  • "ip-other-frag"

  • "ip-overlap-frag"

  • "ip-short-frag"

  • "ip-uncommon-proto"

  • "ip-unk-prot"

  • "ipv4-mapped-ipv6"

  • "ipv6-atomic-frag"

  • "ipv6-bad-src"

  • "ipv6-len-gt-l2-len"

  • "ipv6-other-frag"

  • "ipv6-overlap-frag"

  • "ipv6-short-frag"

  • "l2-len-ggt-ip-len"

  • "l4-ext-hdrs-go-end"

  • "land-attack"

  • "no-l4"

  • "no-listener-match"

  • "non-tcp-connection"

  • "payload-len-ls-l2-len"

  • "routing-header-type-0"

  • "syn-and-fin-set"

  • "tcp-ack-flood"

  • "tcp-hdr-len-gt-l2-len"

  • "tcp-hdr-len-too-short"

  • "hdr-len-gt-l2-len"

  • "hdr-len-too-short"

  • "bad-ext-hdr-order"

  • "ext-hdr-too-large"

  • "hop-cnt-low"

  • "host-unreachable"

  • "icmp-frag"

  • "icmp-frame-too-large"

  • "icmpv4-flood"

  • "icmpv6-flood"

  • "ip-frag-flood"

  • "ip-low-ttl"

  • "ip-opt-frames"

  • "ipv6-ext-hdr-frames"

  • "ipv6-frag-flood"

  • "opt-present-with-illegal-len"

  • "sweep"

  • "tcp-bad-urg"

  • "tcp-half-open"

  • "tcp-opt-overruns-tcp-hdr"

  • "tcp-psh-flood"

  • "tcp-rst-flood"

  • "tcp-syn-flood"

  • "tcp-syn-oversize"

  • "tcp-synack-flood"

  • "tcp-window-size"

  • "tidcmp"

  • "too-many-ext-hdrs"

  • "dup-ext-hdr"

  • "fin-only-set"

  • "ether-brdcst-pkt"

  • "ether-multicst-pkt"

  • "ether-mac-sa-eq-da"

  • "udp-flood"

  • "unk-ipopt-type"

  • "unk-tcp-opt-type"

  • "a"

  • "aaaa"

  • "any"

  • "axfr"

  • "cname"

  • "dns-malformed"

  • "dns-nxdomain-query"

  • "dns-response-flood"

  • "dns-oversize"

  • "ixfr"

  • "mx"

  • "ns"

  • "other"

  • "ptr"

  • "qdcount"

  • "soa"

  • "srv"

  • "txt"

  • "ack"

  • "bye"

  • "cancel"

  • "invite"

  • "message"

  • "notify"

  • "options"

  • "other"

  • "prack"

  • "publish"

  • "register"

  • "sip-malformed"

  • "subscribe"

  • "uri-limit"

分区

字符串

管理设备资源的分区。

默认值: "Common"

per_source_ip_detection_threshold

字符串

指定每秒识别某个IP地址为恶意行为者的数据包数量。

per_source_ip_mitigation_threshold

字符串

指定应用于被识别为恶意行为者的源IP的速率限制。

profile

字符串 / 必需

指定用于管理向量的配置文件名称。

名称 device-config 保留供此模块使用。

可以在DoS配置文件或设备配置中管理向量。通过指定“device-config”配置文件,此模块将专门调整所提供向量的配置以适应设备配置。

provider

字典

f5networks.f5_modules 1.0.0 版本中添加

包含连接详细信息的字典对象。

auth_provider

字符串

配置身份验证提供程序,以从远程设备获取身份验证令牌。

此选项在使用BIG-IQ设备时非常有用。

no_f5_teem

布尔值

如果为 yes,则不会将TEEM遥测数据发送到F5。

您可以通过设置环境变量 F5_TELEMETRY_OFF 来省略此选项。

先前使用的变量 F5_TEEM 已弃用,因为其名称容易混淆。

选项

  • false ← (默认)

  • true

password

别名:pass,pwd

字符串 / 必需

用于连接到BIG-IP或BIG-IQ的用户帐户的密码。

您可以通过设置环境变量 F5_PASSWORD 来省略此选项。

server

字符串 / 必需

BIG-IP主机或BIG-IQ主机。

您可以通过设置环境变量 F5_SERVER 来省略此选项。

server_port

整数

BIG-IP服务器端口。

您可以通过设置环境变量 F5_SERVER_PORT 来省略此选项。

默认值: 443

timeout

整数

指定与网络设备通信(连接或发送命令)的超时时间(秒)。如果在操作完成之前超时,模块将报错。

transport

字符串

配置连接到远程设备时使用的传输连接。

选项

  • "rest" ← (默认)

user

字符串 / 必需

连接到BIG-IP或BIG-IQ的用户名。此用户必须具有设备上的管理员权限。

您可以通过设置环境变量 F5_USER 来省略此选项。

validate_certs

布尔值

如果为 no,则不验证SSL证书。仅在使用自签名证书的个人控制站点上使用此选项。

您可以通过设置环境变量 F5_VALIDATE_CERTS 来省略此选项。

选项

  • false

  • true ← (默认)

simulate_auto_threshold

布尔值

指定记录当前自动阈值的结果,尽管强制执行手动阈值,但不对自动阈值采取任何措施。

sweep 向量不支持此参数。

选项

  • false

  • true

state

字符串

statemitigate 时,确保向量强制执行限制和阈值。

statedetect-only 时,确保向量不强制执行限制和阈值(速率限制、丢弃等),但仍在日志和统计信息中进行跟踪。

statedisabled 时,确保向量不强制执行限制和阈值,但仍在日志和统计信息中进行跟踪。

statelearn-only 时,确保向量不“检测”任何攻击。仅执行学习和统计收集。

选项

  • "mitigate"

  • "detect-only"

  • "learn-only"

  • "disabled"

threshold_mode

字符串

dns-malformed 向量不支持此参数的 fully-automaticstress-based-mitigation

向量 qdcount 不支持针对此参数的 fully-automaticstress-based-mitigation

向量 sip-malformed 不支持针对此参数的 fully-automaticstress-based-mitigation

选项

  • “手动”

  • “基于压力的缓解”

  • “全自动”

注释

注意

  • 有关使用 Ansible 管理 F5 网络设备的更多信息,请参见 https://ansible.org.cn/integrations/networks/f5

  • 需要 BIG-IP 软件版本 >= 12。

  • F5 模块仅操作 F5 产品的运行配置。为确保 BIG-IP 特定配置持久保存到磁盘,请务必包含至少一项使用 f5networks.f5_modules.bigip_config 模块保存运行配置的任务。有关保存运行配置的模块正确用法的详细信息,请参阅模块文档。

示例

- name: Enable DNS AAAA vector mitigation
  bigip_firewall_dos_vector:
    name: aaaa
    state: mitigate
    provider:
      password: secret
      server: lb.mydomain.com
      user: admin
  delegate_to: localhost

返回值

常见的返回值已在 此处 记录,以下是此模块独有的字段:

描述

allow_advertisement

布尔值

新的允许外部广告设置。

返回:changed

示例: true

attack_ceiling

字符串

新的攻击上限 EPS 设置。

返回:changed

示例: "infinite"

attack_floor

字符串

新的攻击下限 EPS 设置。

返回:changed

示例: "infinite"

auto_blacklist

布尔值

新的自动黑名单设置。

返回:changed

示例: false

bad_actor_detection

布尔值

新的恶意行为检测设置。

返回:changed

示例: false

blacklist_category

字符串

新的类别名称设置。

返回:changed

示例: "/Common/cloud_provider_networks"

blacklist_detection_seconds

整数

新的持续攻击检测时间设置。

返回:changed

示例: 60

blacklist_duration

整数

新的类别持续时间设置。

返回:changed

示例: 14400

detection_threshold_eps

字符串

新的检测阈值 EPS 设置。

返回:changed

示例: "infinite"

detection_threshold_percent

字符串

新的检测阈值百分比设置。

返回:changed

示例: "infinite"

mitigation_threshold_eps

字符串

新的缓解阈值 EPS 设置。

返回:changed

示例: "infinite"

per_source_ip_detection_threshold

字符串

新的每个源 IP 检测阈值 EPS 设置。

返回:changed

示例: "23"

per_source_ip_mitigation_threshold

字符串

新的每个源 IP 缓解阈值 EPS 设置。

返回:changed

示例: "infinite"

simulate_auto_threshold

布尔值

新的模拟自动阈值设置。

返回:changed

示例: false

state

字符串

向量的新的状态。

返回:changed

示例: "mitigate"

threshold_mode

字符串

新的缓解阈值 EPS 设置。

返回:changed

示例: "infinite"

作者

  • Tim Rupp (@caphrim007)

  • Nitin Khanna (@nitinthewiz)