1.
概述与准备
- 说明:适用于Ubuntu/Debian系系统,CN2线路通常延迟低,部署前确认镜像、公网IP与控制台快照功能。
- 操作前:在控制台快照(Snapshot)一次;准备本地SSH私钥;记录管理控制台重装/重置密码流程。
2.
首次登录与基本账户安全
- 创建管理用户:ssh root 登录后执行:useradd -m -s /bin/bash admin && passwd admin && usermod -aG sudo admin。
- 配置公钥登录:su - admin; mkdir -p ~/.ssh && chmod 700 ~/.ssh; 将本地公钥粘贴到~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys。
- 禁用密码与root远程登录:编辑 /etc/ssh/sshd_config,设置 PermitRootLogin no、PasswordAuthentication no、PubkeyAuthentication yes;修改默认端口例如 Port 2202。重启 sshd:systemctl restart sshd。
3.
防火墙基础(ufw 示例)
- 安装与默认策略:apt update && apt install -y ufw;ufw default deny incoming && ufw default allow outgoing。
- 开放必要端口:ufw allow 2202/tcp(SSH新端口)、ufw allow 80/tcp、ufw allow 443/tcp;如需管理面板或数据库,限制来源 IP:ufw allow from 203.0.113.5 to any port 3306。
- 启用并检查:ufw enable;ufw status verbose。
4.
入侵防护:fail2ban 与端口保护
- 安装:apt install -y fail2ban。
- 基本配置:在 /etc/fail2ban/jail.d/ 创建 ssh.local,内容示例:[sshd] enabled = true port = 2202 maxretry = 5 bantime = 3600。
- 重载并测试:systemctl enable --now fail2ban;tail -f /var/log/auth.log 并尝试失败登录验证规则。
5.
服务加固与应用隔离
- 最小化安装:移除不必要的软件 apt purge 包名;关闭不必要服务 systemctl disable --now 服务名。
- 使用容器/VM隔离:将外部暴露服务放到容器(Docker)并仅开放必要端口到宿主;docker run 时用 --restart unless-stopped,并限制网络与资源。
- 文件权限与AppArmor:确保 /var/www、数据库目录权限合理;启用并检查 AppArmor 配置。
6.
TLS/反向代理(nginx + certbot)
- 安装 nginx 与 certbot:apt install -y nginx python3-certbot-nginx。
- 配置站点并放行80/443,然后申请证书:certbot --nginx -d your.domain.com,自动修改 nginx 配置并重载。
- 强化 TLS:在 nginx 配置中启用 TLS 1.2/1.3,禁用弱套件;添加 HSTS:add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always。
7.
日志、审计与时钟同步(合规基础)
- 时间同步:apt install -y chrony;编辑 /etc/chrony/chrony.conf 指定大陆/香港NTP服务器;systemctl enable --now chrony。
- 审计:apt install -y auditd audispd-plugins;在 /etc/audit/rules.d/ 添加关键文件、sudo和sshd操作审计规则;systemctl enable --now auditd。
- 集中日志:配置 rsyslog 远程输出到安全的日志服务器(加密通道),并设置日志轮转与保留策略 /etc/logrotate.d/。
8.
数据加密与备份恢复
- 磁盘加密:若可在系统盘做LUKS加密,使用 cryptsetup luksFormat /dev/sdX 并配置开机自动解密(注意控制台恢复过程中密钥管理)。若使用云盘,优先开启云提供商的加密选项。
- 备份策略:组合快照(provider)+增量备份(rsync/cron 或 borgbackup)。示例 cron:0 3 * * * /usr/bin/borg create --compression lz4 /backup::'{now:%Y-%m-%d}' /data。
- 定期恢复演练:每季度执行一次从快照/备份恢复到临时实例,验证备份完整性与启动流程。
9.
合规要求要点(香港PDPO 与运营规范)
- 数据主权:确认敏感个人数据是否允许存放在香港节点,必要时采用最小化数据与加密存储。
- 日志保留与访问控制:根据内控要求设定日志保留周期(例如至少90天),并限制仅合规人员可访问审计日志。
- 加密与传输:静态数据与备份加密(AES-256),传输使用TLS;记录密钥管理策略。
10.
监控与告警实操
- 部署监控:安装 node_exporter(Prometheus)或 Netdata;配置防火墙仅允许监控服务器抓取指标。
- 常用阈值与告警:磁盘使用>80%、CPU负载持续高于2、重要服务down触发邮件/Slack告警。
- 自动化恢复:对可重启服务写 systemd watchdog 或脚本,关键故障结合控制台自动重启策略。
11.
问:在香港沙田CN2节点如何保证对大陆访问稳定且合规?
- 答:选择CN2线路可优化大陆连通性,应用层使用CDN+多点回源;合规上需确认数据类型符合双方法规,敏感个人数据建议加密存储并限制访问,保留审计记录。
12.
问:如何在不影响业务的情况下更改SSH端口与关闭密码登录?
- 答:先在控制台保留root/serial控制作为回退,按步骤:1) 在sshd_config新增 Port 新端口并重载sshd 2) 在防火墙开放新端口 3) 在另一终端测试新端口能否登录 4) 登录无误后再设置 PasswordAuthentication no 与 PermitRootLogin no 并重启,最后关闭旧端口。
13.
问:合规审计需要保留哪些日志与多久?
- 答:至少保留认证日志(/var/log/auth.log)、sudo审计、网络访问日志及应用关键操作日志;常见保留期为90天到7年视行业与合同要求,建议与法务/合规确认并在技术上实现只读与完整性校验(hash)。
来源:香港沙田cn2云服务器安全防护与合规配置实用指南