• 威胁来源:网络扫描、暴力破解、爬虫滥用、DDoS攻击和中间人监听
• 部署位置:德国法兰克福机房(示例机房:Hetzner/OVH 常用)
• 服务角色:Prometheus 抓取、Grafana 展示、node_exporter/agent 采集
• 通信需求:控制平面(管理员访问)与数据平面(采集器到监控服务器)分离
• 目标:最小暴露端口、强制加密传输、基于证书的服务身份校验、DDoS 缓解与日志审计
• 最小化暴露端口:只对公网开放必需端口(例如 443、SSH 非标准端口)
• 监控端口建议:Prometheus 9090 对内网,node_exporter 9100 仅在 VPN/隧道可达
• 防火墙规则示例:使用 iptables 或 nftables 限制来源 IP/IP 段(示例见第6节)
• 管理访问分离:SSH 改端口为 2222,仅允许跳板机或管理 IP 列表访问
• 网络隔离方法:VLAN、私有子网或 WireGuard 隧道将采集器与监控主机流量隔离
• 使用 CDN 层:对 Grafana 前端使用 Cloudflare 或国内同类(注意 GDPR/合规)
• DDoS 缓解:在流量峰值时启用速率限制、挑战页与 Spectrum TCP 代理(对 TCP 服务)
• 原始 IP 保护:使用防火墙只允许 CDN 回源 IP 或通过 TLS 源验证
• 带宽与计费策略:在德国机房选择带宽峰值 1 Gbps 弹性计费以应对攻击峰值
• 实时监控:设置速率阈值告警,触发后自动启用更严格的 WAF 规则

• 证书类型:使用 Let's Encrypt 或自建 CA 签发服务器证书,控制台建议 RSA 4096 或 ECDSA P-256
• mTLS 应用场景:Prometheus 抓取重要主机时启用 mTLS,client_cert 验证采集器身份
• 证书生命周期管理:自动续期(certbot systemd timer),并维护证书撤销列表(CRL/OCSP)
• 证书示例:server cert CommonName=monitor.example.de, 验证指纹 SHA256=3A:5F:...:C1(示例)
• TLS 参数推荐:TLS1.2+或TLS1.3,禁止 RC4/3DES,优先 ECDHE 密钥交换与 AEAD 密码套件
• SSH 强化:禁用密码登录,使用公钥认证,PermitRootLogin no,使用 AllowUsers 限制用户
• 审计与日志:启用系统审计 auditd,集中上报到安全日志服务器并保留 90 天原始日志
• 防暴力破解:部署 fail2ban,针对 SSH、Grafana 登录设置 5 次失败后封禁 1 小时
• 系统基线:Ubuntu/Debian 最小安装,及时安装安全补丁并启用 unattended-upgrades
• 备份与恢复:制定快照策略(每 6 小时增量,7 天全量),并定期演练恢复流程
• 案例背景:在德国法兰克福 Hetzner 机房部署监控集群,用于监控 120 台 Web/DB 节点
• 服务器配置(示例):监控节点使用 4 vCPU / 8 GB RAM / 120 GB NVMe,公网 IP 88.198.51.100
• 服务分布:Prometheus(9090,内网),Grafana(443,前端通过 CDN),Pushgateway(9091,内网)
• iptables 示例(附注):允许 443、管理端口 2222 来自管理网段 203.0.113.0/28;拒绝其他入站
• mTLS 证书部署:CA 根(自建)-> 签发 server/agent 证书,证书到期 2026-12-01,自动续期脚本已部署
• iptables 关键规则示例(文本说明):
• iptables -A INPUT -p tcp --dport 2222 -s 203.0.113.0/28 -j ACCEPT
• iptables -A INPUT -p tcp --dport 443 -s 198.51.100.0/24 -j ACCEPT # 仅 CDN 回源网段
• iptables -A INPUT -p tcp --dport 9090 -s 10.0.0.0/16 -j ACCEPT # 内网 VPC
• iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
• iptables -P INPUT DROP # 默认拒绝其他入站