1. 初步准备与环境信息收集
- 确认操作系统与版本:cat /etc/os-release;uname -r。
- 确认云厂商安全组与VPC设置(登录控制台,记录公/私网IP、子网、路由表、NAT)。
- 记录所有开放端口:sudo ss -tulnp 或 sudo netstat -tulnp;将结果保存到审计文件:/root/scan_ports.txt。
2. 系统更新与最小化安装
- 立即更新并设置自动更新:Ubuntu: sudo apt update && sudo apt -y upgrade;Debian/Ubuntu可安装 unattended-upgrades。
- 卸载不必要服务:列出服务 systemctl list-unit-files --type=service,禁用不需要的 systemctl disable --now <服务名>。
- 安装基础安全工具:sudo apt install -y fail2ban ufw auditd lynis vim。
3. SSH 加固与身份认证
- 配置密钥登录:在本地生成密钥 ssh-keygen,上传公钥到 ~/.ssh/authorized_keys;禁用密码登录:在 /etc/ssh/sshd_config 设置 PasswordAuthentication no。
- 禁止root直接登录:PermitRootLogin no;修改默认端口(可选):Port 2222,重启服务 sudo systemctl restart sshd。
- 强制 2FA:安装 Google Authenticator 或使用云厂商 MFA,配置 PAM:/etc/pam.d/sshd 增加 auth required pam_google_authenticator.so。
4. 网络层防护(安全组与主机防火墙)
- 云控制台:把入站规则限制到必要 IP/端口(仅允许管理IP访问SSH/管理端口);禁用 0.0.0.0/0 的不必要端口。
- 主机侧启用 ufw 或 nftables:sudo ufw default deny incoming; sudo ufw allow 80/tcp; sudo ufw allow 443/tcp; sudo ufw allow 2222/tcp; sudo ufw enable。
- 部署 Fail2Ban:编辑 /etc/fail2ban/jail.local,启用 sshd 规则并设置 bantime/maksretry,重启 fail2ban。
5. 内核与系统参数硬化
- 编辑 /etc/sysctl.conf 添加并生效:net.ipv4.ip_forward=0、net.ipv4.conf.all.rp_filter=1、net.ipv4.tcp_syncookies=1、fs.protected_symlinks=1。sudo sysctl -p。
- 限制核心转储:echo "/usr/bin/false" > /etc/systemd/coredump.conf 或设置 ulimit -c 0;关闭不必要的内核模块(按需)。
6. 用户与密码策略、最小权限
- 创建管理帐号并撤销 root 登录:adduser adminuser;usermod -aG sudo adminuser;编辑 /etc/ssh/sshd_config 只允许 AllowUsers adminuser。
- 强化密码与过期策略:编辑 /etc/login.defs 与 /etc/pam.d/common-password,启用 pam_cracklib 或 pam_pwquality;chage -M 90 username 设置密码到期。
- 移除无用帐号:awk -F: '($3<1000){print $1}' /etc/passwd 检查系统账号,必要时锁定 usermod -L
。
7. 日志、审计与集中化
- 启用 auditd 并添加关键文件监控:编辑 /etc/audit/audit.rules,例如 -w /etc/ssh/sshd_config -p wa -k SSH_CFG。sudo systemctl enable --now auditd。
- 配置远程日志服务器:在 rsyslog 或 syslog-ng 中添加远程目的地,保证日志不可篡改;启用 logrotate 规则,避免日志丢失。
- 定期导出审计报告:使用 ausearch 与 aureport 或 lynis audit system --quick 生成基线报告。
8. 漏洞扫描与基线合规检查
- 运行本地基线工具:sudo apt install lynis;lynis audit system --quiet;阅读 /var/log/lynis-report.dat 并按建议修复。
- 外部端口与服务扫描:nmap -sS -sV -p- ;对关键服务运行漏洞扫描器(OpenVAS/Nessus)。
- 对照 CIS/行业合规:下载对应 OS 的 CIS Benchmark,逐条核对并记录修复项,形成证据包(变更单、配置快照)。
9. 数据保护:加密与备份策略
- 启用磁盘/卷加密:云控制台开启卷加密(如 KMS)或使用 LUKS:sudo cryptsetup luksFormat /dev/sdb;并在 /etc/crypttab /etc/fstab 做持久化。
- 备份策略:定期快照+异地备份,使用加密传输(rsync over SSH 或云备份服务),并做恢复演练(每月一次)。
- 证书与 TLS:使用 Let's Encrypt/私有PKI,强制 HTTPS,禁用弱加密套件,使用 TLS 1.2/1.3,测试:openssl s_client -connect :443。
10. 合规性检查清单与落地证明
- 制定清单:标明网络边界、访问控制、审计日志、加密、备份与应急响应;对照香港PDPO、行业标准(如 PCI-DSS、ISO27001)识别差距。
- 证据收集:配置文件快照、更新记录(apt history)、漏洞扫描报告、日志保留策略及恢复测试记录,统一归档以便审计。
- 周期与责任:定义每月脆弱性扫描、季度基线审核、年度合规复核,并指派负责人和 SLA。
11. 持续监控与应急响应步骤(IR)
- 上线监控告警:安装并配置 Prometheus + Alertmanager 或云监控,告警阈值(CPU、异常流量、登录失败)。
- 入侵检测:部署 AIDE 或 OSSEC 做完整性校验,配置 SIEM(如 Elastic/Graylog)聚合告警。
- 应急响应流程:确定隔离步骤(断开网络/快照磁盘)、取证(保留内存镜像、系统日志)、恢复流程(从备份恢复并补丁)。
12. 问:如何在香港云服务器上快速启用磁盘加密并保留可恢复性?
问:在香港云上如何快速启用磁盘加密并保留可恢复性?
答:建议在云控制台创建加密卷(使用云KMS),将新磁盘作为加密卷挂载;对已有磁盘先做数据备份快照,然后创建加密卷并恢复数据。若使用LUKS:备份数据-> cryptsetup luksFormat /dev/sdb -> cryptsetup open -> 格式化并恢复数据,同时保存密钥或将密钥交由KMS管理,设置自动挂载与启动脚本以保证可恢复性。
13. 问:如果怀疑服务器被入侵,我第一时间该做什么?
问:怀疑被入侵时第一时间如何处置?
答:立即采取隔离措施:断开外网或关闭可疑端口(但保留供取证的网络连接),对系统做磁盘快照和内存捕获,导出关键日志(/var/log/、auditd),不要重启系统,记录动作并通知安全负责人和云厂商支持,随后在隔离环境中进行取证与恢复。
14. 问:如何满足香港地区的数据本地化与合规要求?
问:如何确保合规(如PDPO)与数据本地化?
答:在云控制台选择香港区域的服务,限定数据存储位置(禁用跨区复制或记录跨境流程)、启用访问控制与审计日志、对敏感数据做分类与加密,并保留完整审计证据(访问记录、同意文档、数据处理说明),必要时咨询法律/合规团队并将控制措施写入政策和SOP。
来源:香港 云 服务器 安全加固与合规性检查实战指南