1.
初始评估与资产清单
- 列出所有香港节点IP、域名、服务端口与操作系统:例如使用 nmap -sS -Pn -p- 1.2.3.4 快速探测开放端口。
- 建立资产表(IP/端口/服务/管理员/用途),存放在受控的版本库(私有 Git 或 CMDB)。
- 确定关键业务(站群中的主域名、支付回调、管理面板)优先级,制定分级加固策略。
2.
操作系统与补丁管理
- 及时打补丁:Debian/Ubuntu 用 apt update && apt upgrade -y;CentOS/RHEL 用 yum update -y。
- 启用自动更新(非生产时间窗):apt install unattended-upgrades 并配置 /etc/apt/apt.conf.d/50unattended-upgrades。
- 使用受信任仓库与GPG校验,避免直接 Cron 下载未知脚本。
3.
最小化服务与端口管理
- 卸载或停用不必要服务:systemctl disable --now
,检查 systemctl list-unit-files | grep enabled。
- 使用 netstat -tulpen 或 ss -tulpen 定期审计监听端口。
- 将管理接口(SSH/HTTP 管理端口)内网化或仅允许特定 IP 访问。
4.
网络边界与防火墙配置
- 推荐使用 nftables 或 iptables/nft:示例 nftables 基本规则:nft add table inet filter; nft add chain inet filter input { type filter hook input priority 0 \; policy drop \; }。
- 允许必要端口:比如允许 22、80、443、特定管理IP:nft add rule inet filter input tcp dport 22 ip saddr 1.2.3.4 accept。
- 配置连接追踪与速率限制:nft add rule inet filter input tcp dport 22 ct state new limit rate 10/minute accept。
5.
SSH 加固
- 禁用密码登录与 root 登录:编辑 /etc/ssh/sshd_config,设置 PermitRootLogin no、PasswordAuthentication no。
- 使用公钥认证并限制来源:在 /etc/ssh/sshd_config 中添加 AllowUsers admin@1.2.3.4。
- 修改默认端口并启用登录失败封禁:例如 Port 2222,然后配合 fail2ban 使用。
6.
入侵防护与封禁策略(Fail2ban / Crowdsec)
- 安装 fail2ban:apt install fail2ban;创建 /etc/fail2ban/jail.d/ssh.local,配置 maxretry=5、bantime=3600。
- 考虑使用 CrowdSec 做分布式情报共享,部署本地 agent 并订阅社区场景。
- 针对 Web 攻击配置 mod_security 或 WAF 规则,拦截常见注入与爬虫。
7.
Web 服务与应用加固(Nginx/Apache/PHP)
- Nginx:关闭 server_tokens;启用 limit_conn、limit_req 做速率控制;示例:limit_req_zone $binary_remote_addr zone=one:10m rate=5r/s。
- PHP:禁用危险函数(exec, system, passthru)在 php.ini 中 disable_functions,设置 open_basedir 限制。
- 启用 HTTPS(强制 TLS 1.2/1.3)、HSTS,使用 Let’s Encrypt 或企业 CA,并定期自动续期。
8.
抗 DDoS 与流量清洗
- 对于站群规模大的流量攻击,优先接入 CDN / WAF(Cloudflare、Akamai、七牛等),并在源站启用真实 IP 识别。
- 内核防护:启用 SYN cookies 与 conntrack 参数,在 /etc/sysctl.conf 加入 net.ipv4.tcp_syncookies=1、net.netfilter.nf_conntrack_max=262144。然后 sysctl -p。
- 使用 iptables/nft 的 connlimit 与 rate limit 规则在本地再做防御。
9.
主机入侵检测与完整性校验
- 部署 AIDE 或 tripwire 做文件完整性检测:初始化数据库 aide --init,定期比对并告警。
- 部署主机型 IDS(Suricata)或结合集中式 IDS,规则库定期更新。
- 启用审计日志(auditd),捕获关键文件/命令的修改与执行。
10.
日志集中与监控告警
- 将日志集中到 ELK/EFK 或 Graylog:在每台主机安装 Filebeat/Fluentd,将 /var/log/nginx/*.log /var/log/auth.log 发送到集群。
- 配置监控(Prometheus + Grafana),对 CPU、内存、连接数、异常流量阈值设置告警并通过邮件/钉钉/Slack 通知。
- 保留审计日志至少90天(依业务合规),并定期备份。
11.
权限、用户与备份策略
- 最小权限原则:使用 sudo 而非直接 root,限定 sudoers 文件中的命令。
- 定期审计 crontab 与服务账号,移除默认或不再使用的账号。
- 设计异地备份(香港节点到香港以外的备份点),并定期做恢复演练。
12.
应急响应与恢复流程
- 制定入侵响应 playbook:检测、隔离、取证、恢复、复盘五步骤。
- 准备好只读快照(LVM snapshot 或云盘快照)用于取证,避免在被攻击机器上做破坏性操作。
- 定期演练 RTO/RPO,确保站群在被清理后能快速回归生产。
13.
问:香港站群首要的防护优先级是什么?
- 答:优先保证边界防护与访问控制:部署 CDN/WAF 做流量过滤、严格防火墙规则、SSH 与管理端口只允许白名单访问;其次是补丁与备份。
14.
问:遇到大流量 DDoS,先做哪些本地应对?
- 答:开启内核 SYN cookies、增加 conntrack、在防火墙上设置速率限制与 connlimit,同时联系 CDN/清洗服务切换到清洗模式并启用临时封禁策略。
15.
问:如何在站群中高效管理密钥与证书?
- 答:使用集中化密钥管理(Vault)或内部 PKI,自动化证书签发与续期(ACME 客户端),并对私钥进行硬件或软件加密存储与访问审计。
来源:面向攻击防御的香港站群服务器安全性加固实战操作指南