1.
1) 台湾地理位置靠近亚太节点,访问延迟低,但也因此成为攻击者探测的热点。
2) 本地用户量、跨境访问模式与法规(例如个人资料保护)影响日志保存与审计策略。
3) 云主机(VPS)资源弹性大,但默认日志配置常不充分,需补强系统与应用日志。
4) CDN 与 DDoS 防护要结合来源IP(台湾/国际)分流,减少原始主机负载。
5) 本文目标:提供端到端日志采集、报警与自动响应配置示例,含具体命令与数据样例。
2.
1) 案例服务器 A(台湾节点):IP 203.67.120.45,配置 4 vCPU / 8GB RAM / 100GB SSD(CentOS 8)。
2) 案例服务器 B(备援):IP 203.67.120.46,配置 2 vCPU / 4GB RAM / 50GB SSD(Ubuntu 20.04)。
3) 应用:Nginx 1.18 + PHP-FPM,域名 example-tw.com,通过 CDN 前置(缓存规则、WAF)。
4) 流量峰值示例:正常高峰 120 Mbps,遭遇小型 DDoS 峰值 1.2 Gbps(TCP/UDP 混合)。
5) 日志策略:系统日志保留 30 天,访问日志 90 天(压缩存档),安全告警保留 365 天。
3.
1) 在每台主机启用 rsyslog,配置 /etc/rsyslog.conf 推送到中央日志服务器(TLS 传输)。示例:*.* @@logserver.example-tw.com:514。
2) 使用 Filebeat 收集 /var/log/nginx/access.log 与 /var/log/nginx/error.log,Filebeat.yml 示例:output.elasticsearch 指向 ELK 集群。
3) 为减少磁盘占用,启用日志轮替与压缩:logrotate 每日轮转,保留 90 天并 gzip 压缩。
4) 对 SSH、sudo、auth.log 单独归类并设置高优先级告警(30 次失败/10 分钟)。
5) 日志采集延迟目标:小于 10 秒;丢包率目标:<0.1%,并记录采集失败计数器。
4.
1) Fail2ban:针对 sshd、nginx-http-auth、nginx-badbots 规则,示例 jail.local:maxretry = 5,bantime = 3600。
2) Suricata IDS:部署在输入链前,启用 ET rules,针对 SYN flood、HTTP 攻击签名生成告警。
3) WAF(CDN 提供或 Nginx ModSecurity):配置 OWASP 栈并启用自定义规则拦截常见注入。
4) 自动化响应:当 ELK 报表显示 5 分钟内请求率 > 10000 rps 且错误率 > 5%,触发流量下线并通知运维。
5) 记录与封禁:对于来自单一 IP 1 小时请求数 > 10000 的,先调到 CDN rate limit,再加入 fail2ban 黑名单。
5.
1) 基本 iptables/DROP 策略:默认拒绝,允许必要端口(22、80、443);示例命令:iptables -A INPUT -p tcp --dport 22 -j ACCEPT。
2) SYN cookies 与内核优化:sysctl 设置示例:net.ipv4.tcp_syncookies=1,net.core.somaxconn=65535。
3) nftables 示例规则:限制每 IP 连接速率 nft add rule inet filter input tcp dport 80 ct state new limit rate 25/second accept。
4) 与 CDN 协作:在 CDN 上启用 Anycast、行为分析与速率限制,遭遇 >1Gbps 攻击时转入清洗节点。
5) 当检测到 10 分钟内流量异常时,自动下发路由到黑洞或清洗并保留采样日志用于事后取证。
6.
1) Nginx 访问日志样例:203.67.120.100 - - [2026-05-10T08:12:34+08:00] "GET /wp-login.php HTTP/1.1" 404 153 "-" "curl/7.68.0"。
2) SSH 错误样例(/var/log/auth.log):May 10 08:15:02 server sshd[1234]: Failed password for invalid user admin from 45.77.23.12 port 54321 ssh2。
3) Suricata 告警样例:ET DOS Possible SYN Flood FROM 45.77.23.12 TO 203.67.120.45。
4) 利用 ELK 可以快速检索:"Failed password" 出现次数与来源 IP 列表并据此更新防火墙。
5) 以下表格展示某日端口被探测次数统计(样例数据)。
| 端口 | 协议 | 探测次数 | 主要来源国家 |
|---|---|---|---|
| 22 | TCP | 12,435 | 中国大陆 / 俄罗斯 |
| 80 | TCP | 98,210 | 台湾 / 日本 |
| 443 | TCP | 85,760 | 台湾 / 新加坡 |
| 53 | UDP | 7,980 | 全球 |
7.
1) 关键指标:CPU 使用率、内存使用、磁盘 I/O、网络带宽、Nginx 活跃连接、5xx 错误率、SSH 失败次数。
2) 示例阈值:5 分钟内 5xx 比例 > 5% 触发 P1 告警;网络入口带宽 > 80% 持续 2 分钟触发扩容或 CDN 切换。
3) Prometheus 报警规则示例:avg_over_time(rate(nginx_requests_total{code=~"5.."}[5m])[5m]) > 0.05。
4) 自动化响应:Alertmanager 触发 webhook 执行脚本调整 iptables/nftables 或调用云平台 API 扩容。
5) 记录工单与审计:所有自动化操作写入审计日志并附带采样访问日志以便后续分析。
8.
1) 日志集中化与加密传输是基础,保证至少 30 天在线检索能力及 365 天归档。
2) 与 CDN 与上游 ISP 协同防护 DDoS,设定速率限制与清洗策略。
3) 配置 Fail2ban/IDS/WAF 联合使用,做到入口阻断与行为分析并行。
4) 建立可自动化的告警到响应链路(Prometheus → Alertmanager → 自动化脚本/人工)。
5) 定期演练:每季度进行一次流量与安全演练(含日志回溯、应急切换、证据保全)。