1. 初始环境准备与账号分配
- 在拿到柬埔寨 VPS 后,先用控制面板重置 root 密码或使用提供的密钥登录。
- 创建非 root 管理用户并添加 sudo 权限:sudo adduser deploy; sudo usermod -aG sudo deploy。
- 配置时区与基本工具:sudo timedatectl set-timezone Asia/Phnom_Penh; sudo apt update && sudo apt install -y vim curl ufw fail2ban rsync
2. SSH 加固(详尽步骤)
- 生成密钥对(本地机器):ssh-keygen -t ed25519 -C "deploy@yourhost"。
- 将公钥复制到服务器:ssh-copy-id -i ~/.ssh/id_ed25519.pub deploy@vps_ip。
- 编辑 /etc/ssh/sshd_config:禁用密码登录 PasswordAuthentication no;禁止 root 登录 PermitRootLogin no;更改默认端口 Port 2222(可选)。
- 重启 SSH:sudo systemctl restart sshd;测试新端口后再断开原连接以免锁死自己。
3. 防火墙配置(UFW 与 iptables 示例)
- 使用 UFW 简化规则:sudo ufw default deny incoming; sudo ufw default allow outgoing。
- 允许 SSH(如果修改端口):sudo ufw allow 2222/tcp;允许 web:sudo ufw allow 80,443/tcp。
- 启用并查看状态:sudo ufw enable; sudo ufw status verbose。
- 需要更精细限制时,使用 iptables 或 nftables 写入限制规则并持久化(iptables-persistent)。
4. 安装与配置 fail2ban(防爆破)
- 安装:sudo apt install -y fail2ban。
- 在 /etc/fail2ban/jail.d/ 创建自定义 jail.local,例如针对 sshd:[sshd] enabled = true; port = 2222; maxretry = 3; bantime = 3600。
- 重启服务:sudo systemctl restart fail2ban;查看当前封禁:sudo fail2ban-client status sshd。
5. 系统与软件自动更新
- 安装 unattended-upgrades:sudo apt install -y unattended-upgrades apt-listchanges。
- 编辑 /etc/apt/apt.conf.d/50unattended-upgrades,启用安全更新并配置邮件通知。
- 测试:sudo unattended-upgrade --dry-run。定期检查内核更新并在低峰期重启。
6. 应用层加固(Nginx/Apache 与 TLS)
- 安装 certbot 并申请 Let’s Encrypt 证书:sudo apt install certbot python3-certbot-nginx;sudo certbot --nginx -d example.com。
- 强制 HTTPS:在 nginx 配置中设置 return 301 https://$host$request_uri;并启用 HTTP/2、强加密套件与 HSTS。
- 定期 renew:sudo certbot renew --dry-run 并加入 cron 检查。
7. 日志与入侵检测(IDS)监控
- 安装并配置 logrotate 保持日志大小:/etc/logrotate.d/。
- 使用 rkhunter 或 chkrootkit 定期扫描:sudo apt install rkhunter; sudo rkhunter --check。
- 部署基线监控工具(如 Netdata、Prometheus + node_exporter)用于实时告警与流量分析,配合外部告警(邮件/钉钉/Telegram)。
8. 备份与快照策略
- 建议三点备份策略:本地快照(VPS 面板)、异地 rsync 到另一个主机、数据库逻辑备份(mysqldump 或 pg_dump)。
- 示例 rsync cron:0 2 * * * rsync -a --delete /var/www/ backup@backup_host:/backup/vps_name。
- 测试恢复流程并保存至少 30 天的备份快照。
9. 最小化暴露与服务管理
- 关闭不必要的服务:sudo systemctl disable --now
。列出开机自启:systemctl list-unit-files --type=service。
- 使用 chown/chmod 限制文件权限,例如 web 根目录 chmod 750,www-data 所有。
- 对 Docker 容器限制能力与网络,避免容器以 root 运行,使用 user namespaces。
10. Q1: 柬埔寨 VPS 常见网络攻击有哪些,如何优先防护?
- 答:常见有 SSH 爆破、DDoS、Web 应用漏洞利用。优先做 SSH 加固(密钥、非默认端口、fail2ban)、启用防火墙、为 Web 开启 WAF/安全头与 TLS,并与供应商确认是否有 DDoS 防护或使用 Cloudflare 等上游缓解。
11. Q2: 如果误操作导致无法 SSH,如何紧急恢复?
- 答:使用云服务控制面板的控制台(serial console)或重置 root 密码登录;从快照恢复到可用版本;在下一次修改前先在另一个会话测试配置以防被锁。
12. Q3: 日常运维有哪些自动化建议能降低风险?
- 答:自动安全更新(unattended-upgrades)、证书自动续期、自动备份与恢复演练、日志与异常告警自动化、使用配置管理(Ansible)统一下发安全基线,这些都能显著降低人为失误与漏洞窗口。
来源:技术人员必读柬埔寨vps系统安全设置与防护实用手册