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 OTHER 查询” 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 OTHER 方法” 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"

partition

字符串

用于管理资源的设备分区。

默认值: "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

选项

  • "manual"

  • "stress-based-mitigation"

  • "fully-automatic"

备注

注意

  • 有关使用 Ansible 管理 F5 Networks 设备的更多信息,请参阅 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)