1. 初始准备:选择镜像与最小安装
请选择官方或可信供应商的最小化Linux镜像(Ubuntu LTS、Debian、CentOS Stream)。创建实例时只开放管理端口(默认仅开放SSH 22),记录控制台临时密码与私钥备份。上云后立刻用控制台更改默认密码并创建普通管理员用户。
2. 创建账户与权限分离
步骤:1) 添加管理员用户:sudo adduser ops && usermod -aG sudo ops;2) 禁用root直接登录:编辑 /etc/ssh/sshd_config,将 PermitRootLogin no;3) 为关键任务使用sudo日志:在 /etc/sudoers.d/ 中添加限定规则;4) 定期审计:crontab -l /var/log/secure 日志查看 sudo 使用。
3. SSH 密钥认证与端口策略
1) 在本地生成密钥:ssh-keygen -t ed25519;2) 将公钥追加到 /home/ops/.ssh/authorized_keys 并设置权限 chmod 700 .ssh && chmod 600 authorized_keys;3) 在 /etc/ssh/sshd_config 中禁用密码登录 PasswordAuthentication no,启用 PubkeyAuthentication yes;4) 可改默认端口(Port 2222)并重启 systemctl restart sshd;5) 配置 Fail2Ban 保护暴力破解(参见第5节)。
4. 基本系统更新与自动补丁
保持系统和内核最新:Ubuntu/Debian 使用 apt update && apt upgrade -y;启用 unattended-upgrades:apt install unattended-upgrades && dpkg-reconfigure --priority=low unattended-upgrades,检查 /etc/apt/apt.conf.d/50unattended-upgrades。CentOS 使用 yum update -y 并配置 dnf-automatic 或 yum-cron。
5. 防火墙与入侵防护(ufw/iptables + fail2ban)
1) 安装和配置 UFW 示例(Ubuntu):ufw default deny incoming && ufw default allow outgoing;ufw allow 2222/tcp(或22);ufw allow 80,443/tcp;ufw enable;2) 更细粒度使用 iptables/nftables;3) 安装 fail2ban:apt install fail2ban,创建 /etc/fail2ban/jail.local,启用 sshd 保护并设置 bantime、maxretry;4) 验证:ss -tunlp、ufw status。
6. 日志、集中化与日志轮转
1) 确保 /var/log 下关键日志(auth.log、syslog、nginx/access.log)正常记录;2) 安装 rsyslog 并配置远程收集(将日志推送到集中日志服务器),编辑 /etc/rsyslog.conf;3) 配置 logrotate:/etc/logrotate.d/ 保持轮转与压缩,避免磁盘被占满;4) 设置磁盘报警(df -h + cron 脚本或监控平台)。
7. 文件完整性检测与恶意软件扫描
1) 安装 AIDE:apt install aide && aideinit,初始化后将数据库移动到 /var/lib/aide/aide.db.gz 并设置定期 cron 检查;2) 安装 ClamAV:apt install clamav && freshclam,定期 clamscan -r /var/www;3) 对关键目录设置只读挂载或最小权限(chown/chmod)。
8. 服务最小化与网络分段
1) 列出监听服务 ss -tunlp,停用不必要服务 systemctl disable --now service;2) 对外暴露服务使用反向代理(Nginx)并启用 HTTP Strict Transport Security;3) 在云平台控制台配置安全组,前端与管理端口分离,数据库仅允许内网访问。
9. 备份、快照与应急恢复
1) 定期使用云厂商快照或 rsync/duplicity 备份到异地存储;2) 建议策略:每日增量、每周全备、月度留存;3) 备份包含:配置文件 /etc、数据库导出(mysqldump 或 pg_dump)、应用代码与 SSL 密钥;4) 模拟恢复演练,记录恢复步骤。
10. 问:如何快速确认VPS是否已被入侵?
常用检查命令:1) last -a 查看异常登录;2) ss -tunlp / netstat -tulpen 检查陌生监听端口;3) ps aux --sort=start_time 查启动异常进程;4) 检查 /var/log/auth.log、/var/log/secure 是否有异常;5) 使用 AIDE 或 rkhunter 扫描是否有篡改或 rootkit。
11. 答:若发现入侵应如何处置?
立即隔离:快照并从网络中隔离实例,保存内存镜像与日志;不要重启或删除证据。将快照/镜像用于离线取证,替换被入侵系统为干净镜像并恢复备份,重置所有密钥与密码,检查应用和数据库完整性并通报相关合规要求。
12. 问:如何为Web服务在香港VPS上配置HTTPS与自动续签?
建议使用 Certbot:1) apt install certbot python3-certbot-nginx;2) certbot --nginx -d example.com 按提示申请;3) 验证 /etc/letsencrypt/live 下证书,设置 systemctl status certbot.timer 确保自动续期;4) 在 Nginx 配置中启用强加密(TLSv1.2+、优选套件、HSTS)。
13. 答:日常运维有哪些关键项必须保留?
保持补丁、SSH 密钥轮换、备份恢复测试、日志监控告警、入侵检测定期审计、最小权限及服务审查、对外端口与安全组严格控制,以及定期渗透测试与合规性检查。
来源:香港vps云主机安全加固措施与防护规则实操指南