跳转到内容

前提条件

一个有效的 Azure 订阅,具备 Contributor 角色或同等权限,以便创建以下资源:

  • 资源组
  • 虚拟网络和子网
  • 网络安全组
  • 公共 IP 地址
  • 虚拟机(默认为 Standard_F16s_v2)

安装并验证 Azure CLI,以获取您的订阅 ID:

Terminal window
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
az login
az account show --query '{name:name, id:id}' -o table

复制 id 值——这是 Terraform 所需的 subscription_id

需要 Terraform >= 1.5:

Terminal window
terraform version

如未安装,请使用 HashiCorp APT 仓库:

Terminal window
wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install terraform

用于 VM 访问的 SSH 密钥对。推荐使用 Ed25519:

Terminal window
ssh-keygen -t ed25519 -f ~/.ssh/traffic-generator-key -N ""

流量生成器 VM 在配置期间需要出站 HTTPS 访问,以从以下来源下载工具:

  • GitHub Releases(nuclei、dalfox、ffuf、gobuster、feroxbuster、subfinder、httpx、amass)
  • PyPI(sqlmap、scapy、impacket、arjun、pwntools、mitmproxy、sslyze、playwright)
  • npm 注册表(puppeteer、puppeteer-extra-plugin-stealth)
  • Ubuntu APT 仓库(nikto、nmap、masscan、hydra、tshark 及其他系统包)
  • Git 仓库(testssl.sh、recon-ng、spiderfoot、SecLists)

如果您的 Azure 订阅强制执行出站防火墙规则或 NSG 限制,请确保在初始配置窗口期间(15-25 分钟)允许访问上述来源的 HTTPS(端口 443)。

在部署流量生成器之前,您应已完成以下准备:

  1. 源服务器已部署并可访问(参见 origin-server 文档
  2. F5 XC HTTP 负载均衡器已配置,并将源服务器设为后端
  3. 已将 WAF 策略附加到负载均衡器(用于 WAF 流量验证)

Terraform 变量 target_fqdn 应设置为 F5 XC 负载均衡器的公共域名。